簡體   English   中英

C#在列表上查找和編輯單個對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM