2016-02-15 27 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再次感謝:) –