C# 如何为另一个列表中的ParentID的所有值获取List?

C# 如何为另一个列表中的ParentID的所有值获取List?,c#,asp.net,list,C#,Asp.net,List,我有两个列表,一个是类,另一个是整数。我试图返回列表分类法属性之一中存在的所有ParentID值,但没有成功生成此值 例如: List<int> theListingCatIDs = new List<int>(); theListingCatIDs = allMemberListings.Select(u => u.Taxonomy.ConvertAll<int>(v => v.ParentID)).Distinct().ToList(); 这

我有两个列表,一个是类,另一个是整数。我试图返回列表分类法属性之一中存在的所有ParentID值,但没有成功生成此值

例如:

List<int> theListingCatIDs = new List<int>();
theListingCatIDs = allMemberListings.Select(u => u.Taxonomy.ConvertAll<int>(v => v.ParentID)).Distinct().ToList();
这给了我一个错误,说它不能将列表转换为列表,但我如何将结果展平,以便将它们全部放在一个列表中???

您可以使用SelectMany:

MSDN:


它将嵌套列表展平为任何分类法的单个列表。然后,您可以使用Select as normal来提取ParentID。

可能的重复项不是该问题的完全重复项,但该问题和该答案将告诉您如何执行此操作。顺便说一句,在将列表ID分配给LINQ表达式之前,您不应将其实例化到列表中。这没什么大不了的,但这是在内存中创建了一个未使用的实例,然后GC必须清理它,没有任何好处。@MatthewHaugen-谢谢,我将它放在了文件的全局范围内,因为我需要在OnItemDataBound转发器中使用它。干杯:顺便说一句,在发布这个问题之前,我已经试着搜索过了。谢谢这些有用的链接,不过,我不太确定要搜索什么,我在搜索中得到的结果也没有帮助。谢谢!这实际上将列表展平为整数列表,这正是我想要的!
var ids = allMemberListings
    .SelecMany(x => x.Taxonomy)
        .Select(x => x.ParentID)
    .Distinct()
    .ToList()