私は、クラスのインスタンスの数が多いしたいが、この実装例のように、同じデータの類似のフィールドを返す:私は好きではない何C#邪悪な高速配列検索?
foreach (SomeClass sc in SomeClasses)
{
System.Console.WriteLine(sc.GetData("1st field"));
System.Console.WriteLine(sc.GetData("Another field"));
System.Console.WriteLine(sc.GetData("and another"));
}
// ---- inside SomeClass:
Dictionary<string, string> myData;
public string GetData(string field)
{
return myData[field];
}
はしていた文字列のハッシュ、検索とマッチングですこの例で何度も何度も何度も何度も何度も何度も何度も何度も何度も何度も何度もやっています私は本当に良いアプローチを探しています。 Cの世界から来る
は、私は、配列の参照に変更することができるように、すべてのフィールドにユニークな整数キーを割り当てることを考えた:
// ---- inside SomeClass:
string[] MyData;
public string GetData(int field_key)
{
return MyData[field_key];
}
今すぐフィールド検索が効率的であるが、それはちょうどdoesnの」これらの「配列は悪い」時代に感じることがあり、退屈で、field_key整数を処理するのは誤りです。
ここでパフォーマンスの幽霊を追いかけているのかどうかは分かりません。効率的でクリーンなデザインを見つけたいと思っています。
提案?
返信とコード例ありがとう。私はフィールド/プロパティを表すクラスを持っていますが、問題に遭遇することなく辞書参照のためにそのクラスのインスタンスを使用できるかどうか疑問に思っていました。 funcの解決策は、私には起こりませんでした、非常に啓発、ありがとう!私にとって、これは実際の問題を解決することと同じくらいC#を学ぶことです。 – Larsp