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;
}
}
我有那门课。我创建了对象的List lst_pDrinkow并添加了一些表单XML。我不知道如何从列表中只找到单个对象(使用对象id而不是列表id)并编辑他的所有数据(不仅仅是单个参数)。
答案 0 :(得分:5)
您可以尝试这样的事情:
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
,当我们确定我们正在寻找的对象是唯一的时候,如果存在的话。
更正式:
返回序列的唯一元素,如果是,则返回默认值 序列是空的;如果有更多,此方法会抛出异常 比序列中的一个元素。
如here所述。
答案 1 :(得分:0)
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";