[英]C# Find and edit single object on 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;
}
}
我上了那堂課。 我創建了對象的列表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";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.