为什么无法使用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; }
}
答案 0 :(得分:2)
//Update item items .Where(s => s.Code == 700) .Select(s => { s.Char ='*' ; return s; }) .ToList();
您不更新任何内容。您只需创建一个临时列表,然后丢弃结果,因为它没有分配任何内容。
请注意,Items
是一个值类型,不能通过在lambda函数中修改它的本地副本来实现。