私はプロバイダパターンを実装して、私が自分のプロジェクトで使用しているプロバイダを作成しました。 私は特定の値に対して持っているプロバイダのリスト内のプロパティに対して検索を実装する必要があります。私は、エレガントな方法で辞典を辞書に変換する方法があるのだろうかと思っていましたか?辞書では、値を一致させるために検索を使用することができます。辞書を探していたり、基本的なforeachループを実行する代わりに、この種のシナリオを処理するためのより良い方法があります。すべての助けと非常に感謝します。 Ex。助けになるだろう。ProviderCollection to Dictionary
おかげで、 DND
は、この検索コードを書くためのより良い、クリーンな方法はあります?私はジョンが私に以下のように示したような辞書を使うことを考えていました。どう思いますか?
var ProdNumVal = from p in xdoc.Root.Element("ClientOrderId").Elements()
where (string)p.Attribute("name") == "ProductNumber"
select (string)p.Value;
if (!string.IsNullOrEmpty(ProdNumVal.ToString()))
{
foreach (XMLProviderBase prov in Providers)
{
products = prov.ProductNumber.Split(';');
foreach (string prod in products)
{
if (prod == ProdNumVal.FirstOrDefault())
return prov;
}
}
}
ジョン - あなたの仮定で正しいです、私はプロバイダパターンでprovidercollectionを使用しています。辞書を作成するためのコードは、私が探していたものです。ありがとうございます。最終的に私はgenericコレクションでありfindメソッドを持たないproviderscollectionで検索しようとしています。私が望むものを取り戻すためにこのコードを書いたのですが、それは醜いです、どう思いますか?どうやって違うのですか? orig postに追加されたコードを参照してください。 - DND – DotNetDude
こんにちは - 私はあなたが少し上手に探していることを理解していると思うし、辞書が本当にあなたが望んでいるか分からない。いくつかのことができるのであれば、もう少しお手伝いできます。1)サンプルXMLを少し投稿してください。2)XMLProviderBaseとProvidersの定義を投稿してください。 – JohnD
Ok John私はいくつかのコードで投稿を更新しました。 – DotNetDude