可以使用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,其他元素保持不变

C#一个listt的数据 修改他name=a的数据 只修改第一个 使用linq 的where跟Foreach

原文地址: https://www.cveoy.top/t/topic/iHET 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录