【发布时间】:2021-02-22 11:41:26
【问题描述】:
我正在尝试用尚未随机添加到列表中的对象填充列表。因此,我在列表中循环 rInt 次,并希望随机选择对象并将它们添加到列表中(如果它们尚不存在):
collectionList = new List<CollectionSccmCM>();
Random r = new Random();
int rInt = r.Next(0, 5);
for(int i=0; i<=rInt; i++){
collectionList.Add(_context.CollectionApplications.OrderBy(x => Guid.NewGuid()).Where(x => collectionList.Any(y => y.CollectionID !=(x.collection_id.ToString()))).Select(x => new CollectionSccmCM(){CollectionID= x.collection_id.ToString(), Name=x.collection_name}).FirstOrDefault());
}
我似乎在 orderby 和 where 部分有错误,但我无法弄清楚错误。当我在之间放置一个 toList 时,我不再收到任何语法错误,但也不起作用。
任何提示我做错了什么?
谢谢
编辑:
我犯了一个错误,不得不使用包含,但仍然无法正常工作:
collectionList.Add(_context.CollectionApplications.OrderBy(x => Guid.NewGuid()).Where(x => collectionList.Any(y => !y.CollectionID.Contains(x.collection_id.ToString()))).Select(x => new CollectionSccmCM(){CollectionID= x.collection_id.ToString(), Name=x.collection_name}).FirstOrDefault());
编辑: 得到它与一个选择一起工作,但对它不太满意,不明白为什么另一个人没有工作。
collectionList.Add(_context.CollectionApplications.OrderBy(x => Guid.NewGuid()).Where(x => !collectionList.Select(y => y.CollectionID).ToList().Contains(x.collection_id.ToString())).Select(x => new CollectionSccmCM(){CollectionID= x.collection_id.ToString(), Name=x.collection_name}).FirstOrDefault());
【问题讨论】: