无法使用LINQ更新列表

时间:2018-07-25 06:59:17

标签: c#

为什么无法使用LINQ根据条件更新项目值 这是我的代码:

class Program
{
    public static List<Items> items = new List<Items>();
    static void Main(string[] args)
    {


        // Add items to list
        for (int i = 65; i <= 70 ; i++)
        {
        var RowItem = new Items();
            RowItem.Code = i;
            RowItem.Char = (char)(i);
            items.Add(RowItem);
        }


        //Update item
        items
            .Where(s => s.Code == 70)
            .Select(s => { s.Char ='*' ; return s; })
            .ToList();

        Console.WriteLine("\n\n\n");
        foreach (var item in items)
        {
            Console.WriteLine("\t " + item.Code + " ----> " + item.Char);
        }

        Console.ReadKey(true);
    }
}

物品类别定义如下 物品类别定义如下 如下定义的项目类别以下定义的项目类别

public class Items
{
    public int Code { get; set; }
    public Char Char { get; set; }
}

1 个答案:

答案 0 :(得分:2)

    //Update item
    items
        .Where(s => s.Code == 700)
        .Select(s => { s.Char ='*' ; return s; })
        .ToList();

您不更新任何内容。您只需创建一个临时列表,然后丢弃结果,因为它没有分配任何内容。

请注意,Items是一个值类型,不能通过在lambda函数中修改它的本地副本来实现。