C# 使用列表中的Lambda表达式找到的对象
我想更改列表中对象的某些属性C# 使用列表中的Lambda表达式找到的对象,c#,list,object,lambda,C#,List,Object,Lambda,我想更改列表中对象的某些属性 if (Space_Resources.List_Of_Buildings.Exists(x => x.Name == "Landing Pad")) { Console.WriteLine("already there!"); } 我可以找到我的对象,它的“名称”属性是“着陆台”,但我如何更改属性“数量”? 我不能
if (Space_Resources.List_Of_Buildings.Exists(x => x.Name == "Landing Pad"))
{
Console.WriteLine("already there!");
}
我可以找到我的对象,它的“名称”属性是“着陆台”,但我如何更改属性“数量”?
我不能用“x.Amount+=1”之类的词
也许你有更好的方法让我知道如何在列表中添加一些“着陆垫”,而不需要多个着陆垫对象?目前,我的“着陆垫”有一个静态整数,我想对所有LP使用(并增加第2、第3、…)。假设只有一个元素名为“着陆垫”
查看“LINQ”的一些教程,因为它是非常基本的(而且您的类名和属性没有遵循标准的c#命名约定)
//假设可能有多个着陆垫
foreach(var building in Space_Resources.列出_建筑的列表,其中(x=>x.Name==“着陆台”)
{
建筑。金额+=1:
}
这是解决这种情况的一种非常有趣的方法。但我会使用这样简单的方法
var lsSample = new List<SampleItem>();
lsSample.Add(new SampleItem { Name = "Sample Item A" });
lsSample.Add(new SampleItem { Name = "Sample Item B" });
lsSample.Add(new SampleItem { Name = "Sample Item C" });
foreach (var item in lsSample.Where(x => x.Name == "Sample Item A"))
{
item.Amount += 1;
}
您应该先通过
获取参考资料
,单张
,Where
,然后进行更新。我不知道您在列表中存储了什么-我不知道您的列表是否为列表-请添加更多代码以查看上下文。
var lsSample = new List<SampleItem>();
lsSample.Add(new SampleItem { Name = "Sample Item A" });
lsSample.Add(new SampleItem { Name = "Sample Item B" });
lsSample.Add(new SampleItem { Name = "Sample Item C" });
foreach (var item in lsSample.Where(x => x.Name == "Sample Item A"))
{
item.Amount += 1;
}
lsSample.Where(x => x.Name == "Sample Item A").Select((item) =>
{
item.Amount++;
return item;
}).ToList();