C#查找并编辑列表中的单个对象

Gar*_*Out 0 c# linq class list

public class kDrinki
{
    public int id {get; set;}
    public string nazwa { get; set; }
    public string skladniki { get; set; }
    public string opis { get; set; }
    public string sciezka { get; set; }

    public kDrinki(int _id, string _nazwa, string _skladniki, string _opis, string _sciezka)
    {
        id = _id;
        nazwa = _nazwa;
        skladniki = _skladniki;
        opis = _opis;
        sciezka = _sciezka;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有那门课.我创建了对象的List lst_pDrinkow并添加了一些表单XML.我不知道如何从列表中只找到单个对象(使用对象id而不是列表id)并编辑他的所有数据(不仅仅是单个参数).

Chr*_*tos 5

你可以尝试这样的事情:

var obj =  lst_pDrinkow.SingleOrDefault(x=>x.id==Id);
Run Code Online (Sandbox Code Playgroud)

Id您要查找的对象的ID 在哪里.

如果有一个提供的对象Id,你会得到它.否则,结果将是null.

一旦你得到你想要的对象,就可以很容易地更新它的数据.

if(obj!=null)
{
    obj.nazwa = "new value";
    // update the values of the other properties with the same way.
}
Run Code Online (Sandbox Code Playgroud)

更新

虽然这不是你的情况,我这里要注意的是,如果一个以上与所提供的对象Id,那么你将得到一个异常.我们通常使用SingleOrDefault,当我们确定我们正在寻找的对象是唯一的,如果存在的话.

更正式的:

返回序列的唯一元素,如果序列为空,则返回默认值; 如果序列中有多个元素,则此方法抛出异常.

正如这里所说的那样.