需要在C#中使用LINQ Lambda表达式进行帮助。
让我解释一下我的对象的结构。
RootObject是一个集合(具有多个属性的自定义类),其中有许多属性之一是List<Item>
items。
Item包含一个List<Round>
Rounds。
Round包含一个EntryRID
(此ID是唯一的)和name
。
string = IDToFind = "111"; //The ID i want a Round object for
我需要从“items”列表中找到与给定ID(IDToFind)匹配的Round ID。也就是说,我需要在“items”中搜索每个单独的项目,以找到一个与IDToFind匹配的Round对象。
我尝试了以下表达式:
Round playerRound = RootObject.Select(i => i.Items.Select(x => x.Rounds.Where(y => y.EntryRID == Int32.Parse(IDToFind))));
但它并未返回任何对象,而是返回:
System.Linq.Enumerable+WhereSelectListIterator`2[Leaderboards,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.IEnumerable`1[Round]]]
First()
,Single()
或其他方法来获取单个结果。你可能还想使用SelectMany
来展开结果...不过这并没有帮助,因为很难确定你要找什么样的结果类型。 - Jon Skeet