【割引クーポン配布中】Clazzio/クラッツィオ Real Leather(リアルレザー) ライフ C/JB5、JB6、JB7、JB8 カラーアイボリー【21EHA0308V】


0

これは私が今ここでタイトルをつけていたことの最も難しい質問の1つです。 :)タイトルは意味がないかもしれませんが、うまくいけば質問自体ができます。

のは、私がDictionary<string, List<double>>のようなデータ構造を持っている、と私は、パラメータとしてList<double> Sを取る機能があるとしましょう:

Dictionary<string, List<double>> candy_positions = new Dictionary<string, List<double>>(); 
candy_positions.Add("Godiva", new List<double> { 1.0, 2.0, 4.0 }); 
EatCandy(candy_positions["Godiva"]); 
... 

をしかし、今、私はそれを行うにはしたくないことを決定しましたこちらです。

public class CandyPositions 
{ 
 public double Sees; 
 public double Godiva; 
 public double Lindt; 
} 

しかし、私は本当に一人で)(EatCandyを残したい:私はCandyPositionsは次のようになりますList<CandyPositions>、と私Dictionaryを交換したいです。明らかに、問題は自分のデータが直接メソッドに渡されることがないということです。私は フジツボ マフラー レガリス スーパーR レガシィツーリングワゴン ブリッツェン2002モデル TA-BH5 H14/03~H15/05 送料無料 代引無料、メソッドを呼び出したい

List<CandyPositions> candy_positions = new List<CandyPositions>(); 
... 
var positions = from x in candy_positions select x.Godiva; 
EatCandy(positions.ToList()); 

ごと時間:代わりに サイドステップ【エクスクルージブ ゼウス】カローラフィルダー 【 GRACE LINE 】 サイドステップ 未塗装品 CAROLLA FIELDER (E12) 中期 2002/9 - 2004/4、私のようなラメ何かをしなければなりません。私のような 、より簡単な方法でこれを行うことができるように好む:パラメータ「ゴディバ」はCandyPositionsクラスのプロパティ名と一致

EatCandy(candy_positions.GetPositionsFor("Godiva")); 

この質問を書いた後では、実際にデータを転置することではなく、拡張メソッドを記述することでその一部を処理できることに気付きました。私が行う方法がわからない部分は、プロパティ名を渡すことです。そのため、拡張メソッドはこれを受け取り、それをクラスのプロパティに関連付けることができます。私は文字列を渡したくないのですが、これは主に、あらゆる種類のランタイムエラーの原因となるためです。私は拡張メソッドに "Godiva"を渡してこの作業を行う方法を知っています。私が本当に渡したいのは、CandyPositions.Godivaに似たものです。

要約すると、私は答えの2種類のベストを受け入れるように、この質問は、おそらく少し紛らわしいです:拡張メソッドを使用するよりも、

  1. は JURAN ジュラン レーシングスライドレール(SRis)ホンダ NSX NA1/2 90.03-01.11 左側用、転置データを扱うための良い方法は、あります+プロパティ名にアクセスするには?
  2. 拡張メソッドで取得するプロパティを文字列以外で指定する方法はありますか?

私の現在の拡張メソッドは次のようになります。

public static List<double> GetPositions(this List<CandyPositions> positions, string candy_name) 
{ 
 return (from x in positions select x.GetType().GetProperty(candy_name).GetValue(x, null)).Cast<double>().ToList(); 
} 
c# reflection .net-3.5 properties972

Real C/JB5、JB6、JB7、JB8 Real ライフ カラーアイボリー【21EHA0308V】 【割引クーポン配布中】Clazzio/クラッツィオ カラーアイボリー【21EHA0308V】 Leather(リアルレザー)

共有

作成 20 11月. 102010-11-20 07:22:11