我想从第一个列表(对象列表)生成一个随机数,并将其放在第二个列表中以获取随机连接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= })
}}}
答案 0 :(得分: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。