gpt4 book ai didi

c# - Linq:列表列表到长列表

转载 作者:IT王子 更新时间:2023-10-29 04:13:44 24 4
gpt4 key购买 nike

我有一个 A 类型的对象,它由 B 类型的对象列表组成:

class A { list<B> Alist;}
class B { string C; string D;}

在我的程序中,我有一个 A 对象列表:

list<A> listOfA = computeAList();

我想选择该列表中的所有 C 字符串。我希望以下陈述能给我想要的结果;它返回包含 C 的列表的列表:

var query = from objectA in listOfA
select objectA.Alist.FindAll(x => x.C.Length > 0).C;

有没有办法获取所有 C 的单个列表?

最佳答案

ybo 的回答也是我的第一 react 。与此等效的查询表达式是:

var query = from a in computeAList()
from b in a.Alist
select b.C;

为了完整起见,此线程中的其他答案是同一主题的变体。

来自 ybo(完全相同的查询,以点符号表示):

var query = listOfA.SelectMany(a => a.Alist, (a, b) => b.C);

来自 Ray Hayes(包括 Where 子句;我稍微重新格式化):

var query = listOfA.SelectMany(a => a.AList, (a, b) => b.C)
.Where(c => c.Length > 0);

关于c# - Linq:列表列表到长列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com