私は、C# 2.0/.NET 2.0 の問題に取り組んでいます。Sortedlist があり、この SortedList のすべての「値」(「キー」ではない) を特定の部分文字列で検索し、出現回数を数えたいと考えています。 .
これは私がやろうとしていることです:
{
Sortedlist<string,string> mySortedList;
// some code that instantiates mySortedList and populates it with data
List<string> myValues = mySortedList.Values; // <== does not work
int namesFound = myValues.FindAll(ByName(someName)).Count;
}
mySortedList.Values は IList を返しますが、"myValues" はリストであるため、当然、これは機能しません。myValues で受け入れられるように IList を「キャスト」しようとしましたが、うまくいかないようです。
もちろん、「foreach」ループで mySortedList.Values をループすることはできますが、実際にはそうしたくありません。
誰にも提案はありますか?
EDIT-1: わかりました。これを簡単に行うためのネイティブな方法はないようです。何かが欠けているだけだと思っていましたが、どうやらそうではないようです。したがって、IList に対して "foreach" を実行するだけだと思います。
フィードバックありがとうございます。すべてのフィードバックが良いと思ったので、全員に 1 票を投じました。再度、感謝します!:-)
EDIT-2: 探していた答えが CMS にあるようです。これに関する唯一の注意点 (Qwertie が指摘したように) は、すべての値を別のリストにコピーし、そのリストを最初から最後まで検索する必要があるため、パフォーマンスが低下する可能性があることです。したがって、短いリストの場合、この答えは効果的です。長いリスト?まあ、それはあなた次第です...