2012-01-26 14 views
1

私は約30のプロパティを持つuserObjectを持っています。linqを使ってオブジェクトを更新するには?

私はサーバーから更新されたuserObjectを取得し、変更されたもののプロパティのみを設定し、残りをnullとして返します。

私は現在、foreachとchkを使用していますが、サーバーの値がnullではない場合は、それを更新してください。 linqを使ってnullでないセルを更新する方法はありますか?あなたはリフレクションを使用することができます

public class UserProfile 
    { 
     public string string00 { get; set; } 
     public string string01 { get; set; } 
     public string string02 { get; set; } 
     public string string03 { get; set; } 
     public string string04 { get; set; } 

     public boolean bool00 { get; set; } 
     public boolean bool01 { get; set; } 
     public boolean bool02 { get; set; } 
     public boolean bool03 { get; set; } 
     public boolean bool04 { get; set; } 
    } 
+0

LINQ to what?オブジェクトへのLINQ? LINQ to SQL?エンティティフレームワーク? – Steven

+0

あなたは今使っているコードを投稿してもらえますか? – dasblinkenlight

答えて

2

をオブジェクトへ

LINQ。

class Program 
{ 
    static void Main(string[] args) 
    { 
     myClass currentObj = new myClass() { Text = "test", Value = 5 }; 
     myClass updatedObj = new myClass() { Text = "test 2 ", Value = 6 }; 
     Type cType = currentObj.GetType(); 
     var fieldInfos = cType.GetFields(); 

     foreach (var fieldInfo in fieldInfos) 
     { 
      if (fieldInfo.GetValue(updatedObj) != null) 
      { 
       fieldInfo.SetValue(currentObj, fieldInfo.GetValue(updatedObj)); 
      } 
     } 
    } 
} 

class myClass 
{ 
    public string Text; 
    public int Value; 
} 

ちょうどテンプレートにコードを付けて、それを関数に変更します。 さらに詳しい情報:here

+0

thx..iはすでに反射で動作していましたが、linqを使って同じことを達成できるかどうか疑問に思っていました – abe

+0

私は上記のforeachループの代わりに反射オブジェクトでLINQを使うことができると思いますが、 。 – zmbq

+0

私はちょうどそれが奇妙なものだと言っていたどのように – abe

関連する問題