gpt4 book ai didi

c# - 如果 Lambda c# 不存在,则更新属性或创建新元素

转载 作者:太空狗 更新时间:2023-10-30 00:25:21 26 4
gpt4 key购买 nike

我有一个很大的名称/值对列表<>,需要能够找到这个列表中是否存在特定的名称...如果存在则更新该值,如果不存在则创建一个新的名称/值对并且将其添加到我的列表中。

执行此操作的 Lambda 语法是什么?

我试过使用 .Where .DefaultIfEmpty 但它只返回一个空对象,但没有将它附加到我原来的“myList”

myList.Where(x => x.Name == 'some name').DefaultIfEmpty(new myobj(){ Name = 'some name').First().Value = 'some value';

我必须执行这四个多个名称,所以如果我有一个简单的语法就可以让它变得很棒 =)

最佳答案

您可以使用此扩展方法:

public static void UpdateOrAdd(this List<myobj> source, 
string name, object value)
{
var obj = source.FirstOrDefault(x => x.Name == name);
if (obj == null)
{
obj = new myobj { Name = name };
source.Add(obj);
}

obj.Value = value;
}

用法:

myList.UpdateOrAdd("some name", "some value");

但是考虑使用字典,正如@Sam 所建议的。

关于c# - 如果 Lambda c# 不存在,则更新属性或创建新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552180/

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