gpt4 book ai didi

c# - 如何过滤二维列表?

转载 作者:行者123 更新时间:2023-12-04 07:27:20 25 4
gpt4 key购买 nike

我正在尝试过滤以下列表:

List<List<int>> list = new List<List<int>>()
{
new List<int>(){1,2,3,4,5},
new List<int>(){6,7,5,4,5},
new List<int>(){1,3,3,222,1}
}
我的过滤条件应该是:“只包括奇数” ,所以我的列表在应用过滤器后不应该有任何偶数。
我的尝试:
list = list.Where(x => x.Where(y => y%2 == 1).ToList()).ToList()
期望输出:
List<List<int>> list = new List<List<int>>()
{
new List<int>(){1,3,5},
new List<int>(){7,5,5},
new List<int>(){1,3,3,1}
}
我知道如何在一维集合上使用 Linq,但不知道如何使这个工作。
有任何想法吗?

最佳答案

您可以使用以下内容:

list = list.Select(x => x.Where(i => i % 2 == 1).ToList())
.Where(x => x.Any())
.ToList();
在这里,我们使用 Select()迭代外部列表的元素,然后使用 Where()过滤内部列表。之后,我们调用 Where()在外部列表上过滤掉空的内部列表。最后一部分是可选的;如果您需要保留空列表,请随时将其删除。
注:@Dmitry在评论中说,最好使用 i % 2 != 0如果你想保持负奇数。

关于c# - 如何过滤二维列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68140591/

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