Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用列表中的Lambda表达式找到的对象_C#_List_Object_Lambda - Fatal编程技术网

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();