c# - 如何在 C# 中使用 linq/lambda 获取数据副本而不是引用?

标签 c# linq lambda

是否有一种简单的方法基本上只获取数据的副本而不是使用此方法的引用?我尝试了 .ToArray().Where() 但它似乎仍然传递了一个引用。

例子:

static void Main(string[] args)
{
    List<ob> t = new List<ob>();
    t.Add(new ob() { name = "hello" });
    t.Add(new ob() { name = "test" });

    ob item = t.Where(c => c.name == "hello").First();

    // Changing the name of the item changes the original item in the list<>
    item.name = "burp";

    foreach (ob i in t)
    {
        Console.WriteLine(i.name);
    }

    Console.ReadLine();
}

public class ob
{
    public string name;
}

最佳答案

您需要自己创建 ob 的副本 - LINQ 不提供此功能。

关于c# - 如何在 C# 中使用 linq/lambda 获取数据副本而不是引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8724421/

相关文章:

python django 使用 lambda 和 if 语句进行排序

C#-MYSQL获取特定行列数据

c# - 如何查询xsi :type from an attribute using Linq to XML?

c# - 在 LINQ 查询中执行可变更新?

c# - 将 C# lambda 函数转换为 VB.net

java - 结合对象的 ArrayList 并在 Java 中对 BigDecimal 求和

c# - LINQ 的替代品 .Contains()

c# - 如何使用 Prism 框架将命令绑定(bind)到 WPF 中的按钮

c# - 如何防止提供扩展方法的公共(public)类出现在 Intellisense 中?

C#:更新 List<of T> 中的项目值