相关疑难解决方法(0)

深度克隆对象

我想做的事情如下:

MyObject myObj = GetMyObj(); // Create and fill a new object
MyObject newObj = myObj.Clone();
Run Code Online (Sandbox Code Playgroud)

然后更改未在原始对象中反映的新对象.

我不经常需要这个功能,所以当有必要的时候,我已经使用了创建一个新对象然后单独复制每个属性,但它总是让我觉得有更好或更优雅的处理方式情况.

如何克隆或深度复制对象,以便可以修改克隆对象而不会在原始对象中反映任何更改?

.net c# clone

2135
推荐指数
34
解决办法
77万
查看次数

如何在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;
}
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

7
推荐指数
2
解决办法
4107
查看次数

以只读方式读取HttpRuntime.Cache项

我使用a HttpRuntime.Cache来存储将在会话中频繁访问的对象列表.

我使用以下代码行从缓存中获取项目:

List<chartData_Type> _chartData = 
             (List<chartData_Type>)HttpRuntime.Cache.Get("rollingMonth");
Run Code Online (Sandbox Code Playgroud)

但是,不幸的是,当我更新_chartData时,它也会更新缓存的项目.

我怎样才能简单地获得缓存项目的副本?

.net c# asp.net caching httpruntime.cache

7
推荐指数
1
解决办法
1891
查看次数

标签 统计

c# ×3

.net ×2

asp.net ×1

caching ×1

clone ×1

httpruntime.cache ×1

lambda ×1

linq ×1