2016-02-15 26 views
-4

我要生成从第一个列表(对象的列表)的随机数,并把它在第二个列表以获得一个随机的连接ID,使原来的ID和之间连接的数据随机ID如何我可以通过索引从第一个列表中的项目和哪种类型的我要投它我怎么可以得到存储在列表

public class OneHub :Hub 
{ 
    static List<UserId> ConnectedUser = new List<UserId>(); 
    static List<MessageDetail> CurrentMessage = new List<MessageDetail>(); 
    static List<ConnectionsId> Connection = new List<ConnectionsId>(); 


    public void Connect(string id) 
    { 

     if (ConnectedUser.Count(x => x.ConnectionId == id) == 0) 
     { 
      ConnectedUser.Add(new UserId { ConnectionId = id }); 

      if (ConnectedUser.Count != 0 || ConnectedUser.Count != 1) 
      { 
       Random r = new Random(); 
        int x = r.Next(0,ConnectedUser.Count); 
        (object)ConnectedUser.item[x]; 

        Connection.Add(new ConnectionsId {ConnectionId=id,ConnectionId2= })  

    }}} 
+3

请不要将您的代码作为图像发布。它不容易被搜索,不能被复制/粘贴,并且是浪费带宽。将相关代码作为* text *复制到您的问题中。 – mason

+0

我不明白为什么这是一个循环。如果你只想连接一个人,为什么你需要一个循环? – Hogan

+0

好感谢@mason –

回答

1

首先,你将需要确保你随机获得ConnectedUser是与添加该连接之前链接的用户不是同一用户,或者您将发现更多问题。

ConnectedUser,你可以简单地使用ConnectedUser[x]拿到指标。 (我建议多让您的列表,以便很明显,他们是集合。)

您需要在连接用户分配给新的对象。
喜欢的东西

UserID linkedUser = ConnectedUser[x]; 

这种方式,你可以在你连接另外参考linkedUser.ConnectionId

或者,你可以只使用:

Connection.Add(new ConnectionsId { ConnectionId = id, ConnectionId2 = ConnectedUser[x].ConnectionId }; 

这个随机设置,不过,确实有其几人结束了没有链接到任何一个强大的潜力。此外,您的行指出:

if (ConnectedUser.Count != 0 ... 

是多余的。您只是将用户添加到该列表中。它不应该是大小为0.

+0

谢谢如果列表中的一个元素,这就是我的第一次编程我有很多的问题 –

+1

我想'ConnectedUser.Count> 1'是情理之中的事情。检查不是0而不是1是做两次检查而不是一次。 – Hogan

+0

@Hogan再次感谢:) –