6

私はこのようなことをしたい

foreach (var item in SeasonList)
{
    if (item.Text == "ALL")
    {
        item.IsSelected = true;
    }
}
4

5 に答える 5

24
foreach(var item in SeasonList.Where(x => x.Text == "ALL"))
{
    item.Selected = false;
}
于 2013-02-06T13:20:29.910 に答える
9

これもうまくいくかもしれませんが、私の意見では、あなたがしたことはすでに良いことです。

SeasonList.ForEach(s => s.IsSelected = s.TEXT != "ALL");

または、最初の要件に正確に一致させるには:

SeasonList.Where(s => s.TEXT == "ALL").ToList().ForEach(s => s.IsSelected = false);
于 2013-02-06T13:16:41.250 に答える
4
class Program
{
    static void Main(string[] args)
    {
        List<ItemObject> items = new List<ItemObject>()
        {
            new ItemObject() { Text = "Text 1", IsSelected = true },
            new ItemObject() { Text = "Text 2", IsSelected = true },
            new ItemObject() { Text = "ALL", IsSelected = true }
        };

        items.ForEach(x => { if (x.Text == "ALL") x.IsSelected = false; });
    }
}

class ItemObject
{
    public string Text { get; set; }
    public bool IsSelected { get; set; }
}
于 2013-02-06T13:20:34.140 に答える
4
SeasonList.ForEach(q => q.IsSelected = q.Text == "ALL" ? false : q.IsSelected)
于 2013-02-06T13:21:34.933 に答える
1

インデックスを使用して更新する

        var index = SeasonList.FindIndex(x => x.Text == "ALL");
        if (index > 0) SeasonList[index].IsSelected = false;

別のオプション

      foreach (var item in SeasonList.FindAll(x => x.Text == "ALL"))
        {
            item.IsSelected = false;
        }

ノート:

Jon Skeetの回答LINQはクエリ用であり、更新用ではありません。

于 2013-02-06T13:42:51.797 に答える