查找和编辑列表中的单个对象

本文关键字:单个 对象 列表 编辑 查找 | 更新日期: 2023-09-27 18:13:09

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;
    }
}

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

查找和编辑列表中的单个对象

你可以尝试这样做:

var obj =  lst_pDrinkow.SingleOrDefault(x=>x.id==Id);

其中Id为您要查找的对象的id。

如果有一个对象与提供的Id,您将得到它。否则,结果为null

一旦你得到了你想要的对象,更新它的数据就很容易了。

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

虽然这不是您的情况,但我必须在这里注意到如果多个具有提供的Id对象,那么您将得到一个异常。我们通常使用SingleOrDefault,当我们确定我们正在寻找的对象是唯一的,如果它存在的话。

更正式:

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

List<kDrinki> items = new List<kDrinki>();
        var tmp1 = items.SingleOrDefault(a => a.id == 10);
        tmp1.skladniki = "new value";
        var tmp2 = items.SingleOrDefault(a => a.opis.Contains("some strings"));
        tmp2.skladniki = "new value2";