1

オブジェクトのリスト(リスト)があります。これらの各オブジェクトには、それらを説明する文字列のリスト(リスト)が含まれています。

オブジェクト(カード)を説明するために使用されるすべての個別の文字列を含むドロップダウンを作成する必要があります。これを行うには、使用される個別の文字列のリストが必要です。

LINQでこれをどのように/実行できるかについてのアイデアはありますか?

4

2 に答える 2

2

SelectMany拡張メソッド/演算子を使用して、コレクションを個々の要素にフラット化できます。

listOfObjects.SelectMany(x => x.DescriptionStrings).Distinct()

これにより、オブジェクトのリスト内の各オブジェクトの説明文字列のコレクションからすべての文字列が選択されます。

于 2010-06-01T22:09:40.023 に答える
0

LINQにはDistinct機能があります。

「_cards」がListおよびCard.Descriptionsのインスタンス変数として存在すると仮定すると、説明と「cardsComboBox」(WinForms内)が返されます。

cardsComboBox.AutoCompleteSource = _cards.SelectMany(c => c.Descriptions).Distinct();

ただし、それが製本時のカードの説明のリストになることを忘れないでください。_cardsが更新されたときに同期を維持したい場合は、さらに凝ったフットワークを行うか、リアクティブバインディングソースを調べる必要があります。(Bindable.Linqを使用します)

于 2010-06-01T22:12:00.680 に答える