按Id给对象属性赋值

本文关键字:属性 赋值 对象 Id | 更新日期: 2023-09-27 18:04:45

我有一个用于保存值的对象的全局列表,值和id将被解析为ObjectManager函数,id只能是列表中所述的内容。我想让函数更新对应于Id的值。

最初我尝试使用foreach循环,它不更新列表中的对象。使用下面的代码确实更新列表中的对象,但它只检查已解析的id,我现在正在尝试使用switch语句,早期。

实现我想要做的事情的最好方法是什么?

示例代码:

public List<Object> obj = new List<Object>
            {
                new Object { id = 4, val = 20 },
                new Object { id = 1, val = 34 },
                new Object { id = 16, val = 27 },
                new Object { id = 9, val = 36 }
            };
public void ObjectManager(List<Object> myobj, int id, int val)
{
    int i = 0;
    int j = 0;
    while (i < myobj.Count)
    {
        if(myobj[i].id == id)
        {
            j = myobj[i].val;
            myobj[i].val = j + val; 
        }
    }
}

按Id给对象属性赋值

您可以使用FirstOrDefault()

选择要更新的项目

var variable = myobj.FirstOrDefault(o=>o.id = "YOUR_ID"

如果没有找到

FirstOrDefault(),则返回null,因此我们需要在更新

项之前检查是否为null。

if (variable != null) variable.val = YOUR_VALUE

你应该使用Dictionary

你可以在Dictionary中找到许多与添加或更新相关的解决方案。像这样或者这样