簡體   English   中英

如何在Linq C#中將一個對象分配給另一個對象而不創建新對象

[英]How to assign one object to another in Linq c# without making new

我在將Linq中的一個對象分配給另一個對象時遇到了問題。 在此示例中:

Func<result, result> make = q => new result
{
    Id = q.Id,
    lName = q.lName,
    GroupId = q.GroupId,
    Age = (from tags in q.age where tags.Del == null && tags.lId == q.Id select age).ToEntitySet(),

};

p = (from q in dc.results
        where q.Id == Id.Value
        select make(q)).First();

我正在制作新對象並分配該對象,但是我不想這樣做,這會導致插入問題。 我想分配而不創建新對象,這怎么可能?

喬恩·斯凱特(Jon Skeet)和馬克·格雷夫(Marc Gravell)擁有一個名為MiscUtil的庫。 MiscUtil .Reflection內部,有一個名為PropertyCopy的類,它完全按照您的描述進行操作。 它僅適用於.NET 3.5。

它通過運行SourceType的公共屬性來工作,通過名稱將它們與TargetType的公共屬性進行匹配,確保可以將每個屬性從源分配給目標,然后為這兩個屬性創建並緩存復印機功能類型(因此您不必每次都進行所有反射)。 我已經在生產代碼中使用了它,並且可以保證它的優點。

查看此帖子以獲取代碼示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM