C#一个listt的数据 修改他name=a的数据 只修改第一个 使用linq 的where跟Foreach
可以使用LINQ的Where方法和ForEach方法来实现对List中满足条件的第一个元素的修改。
首先,我们可以使用Where方法筛选出满足条件的元素,然后使用FirstOrDefault方法来获取第一个满足条件的元素。接着,可以使用ForEach方法遍历只含有一个元素的列表,并对该元素进行修改。
下面是一个示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<Data> dataList = new List<Data>()
{
new Data() { Name = "a", Value = 1 },
new Data() { Name = "b", Value = 2 },
new Data() { Name = "a", Value = 3 },
new Data() { Name = "c", Value = 4 }
};
dataList.Where(data => data.Name == "a").FirstOrDefault()?.Modify();
dataList.ForEach(data => Console.WriteLine($"Name: {data.Name}, Value: {data.Value}"));
}
}
class Data
{
public string Name { get; set; }
public int Value { get; set; }
public void Modify()
{
// 在这里进行修改
Value = 10;
}
}
在上述示例中,我们使用Where方法来筛选出Name为"a"的元素,并使用FirstOrDefault方法获取第一个满足条件的元素。然后,我们通过?.操作符来调用该元素的Modify方法进行修改。最后,我们使用ForEach方法遍历整个列表,并打印每个元素的Name和Value属性的值。
输出结果为:
Name: a, Value: 10
Name: b, Value: 2
Name: a, Value: 3
Name: c, Value: 4
可以看到,只有第一个Name为"a"的元素的Value属性被修改为了10,其他元素保持不变
原文地址: https://www.cveoy.top/t/topic/iHET 著作权归作者所有。请勿转载和采集!