gpt4 book ai didi

c# - 在 C# 中使用 lambda 获取嵌套列表中的特定元素

转载 作者:行者123 更新时间:2023-11-30 19:16:06 24 4
gpt4 key购买 nike

美好的一天,

假设我有一个静态 List<AClass>对象(我们将其命名为 myStaticList),其中包含另一个列表,该列表包含另一个具有 CId 和 Name 属性的列表。

我需要做的是

foreach(AClass a in myStaticList)
{
foreach(BClass b in a.bList)
{
foreach(CClass c in b.cList)
{
if(c.CId == 12345)
{
c.Name = "Specific element in static list is now changed.";
}
}
}
}

我可以使用 LINQ Lambda 表达式实现吗?

类似的东西;

myStaticList
.Where(a=>a.bList
.Where(b=>b.cList
.Where(c=>c.CId == 12345) != null) != null)
.something logical
.Name = "Specific element in static list is now changed.";

请注意,我想更改静态列表中该特定项目的属性。

最佳答案

您需要SelectMany 来展平您的列表:

var result = myStaticList.SelectMany(a=>a.bList)
.SelectMany(b => b.cList)
.FirstOrDefault(c => c.CId == 12345);

if(result != null)
result.Name = "Specific element in static list is now changed.";;

关于c# - 在 C# 中使用 lambda 获取嵌套列表中的特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28084789/

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