1

「string」、「string」のペアリストが必要です。

試した:

Dictionary<string, string> Categories= new Dictionary<string, string>();

ただし、「700」、「2」および「700」、「3」は追加できません。必要なときにすべてを追加できるペアが必要です。N ベクトル (文字列、文字列) を含むことができるベクトルのように。どの構造が必要ですか? すぐに、LINQ でそれらを比較する必要があるため、次のようにします。

myStructs = from MyObject s in MyObjects
               join c in Categories on s.IDCategory.UniqueID equals c.Key
               join d in Categories on s.Stars equals d.Value
               select s;
4

5 に答える 5

9

を試すList<Tuple<string, string>>か、読みやすくするために単純に新しい型を作成してください。

linq 中に意味をなす必要がある場合は、タプルを匿名型に転送して (letここで使用)、型に適切なプロパティ名を与えることができます。

var items = new List<Tuple<string, string>>
    {
        new Tuple<string, string>("Adam", "1"), 
        new Tuple<string, string>("Adam", "2")
    };

var names = from i in items
            let person = new { Name = i.Item1, Number = i.Item2 }
            select person.Name;

linq クエリ中にもう少し読みやすくします。

タイプが頻繁に使用される場合は、 Servy の回答のように、明確にするために、より適切なプロパティ名を使用して独自のタイプを作成することをお勧めします。長期的にTuple<string, int, bool>は、次のものよりもはるかに明白ではありません。

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public bool LikesCake { get; set; }
}

タプルの等価性は、同じタイプのタプルのインスタンスに対するすべてのプロパティの等価性に基づいています。たとえば、new Tuple("Adam", "1").Equals(new Tuple("Adam", "1"))true になります。

リストも重複アイテムを止めません。すべてのプロパティに一意性を適用する必要がある場合HashSet<Tuple<string, string>>は、それが必要です。

于 2012-07-17T15:09:08.757 に答える
4

自分で作成するだけです。

public class Pair
{
  public string First {get;set;}
  public string Second {get;set;}
}

次にList<Pair>、データを保持することができます。

独自のニーズに合わせて再利用できる可能性のあるライブラリ クラスがいくつかありますが、特に、このペアが実際に何かを表している場合 (クラスとプロパティの名前をより意味のあるものに変更することを意味します)、それを持っていると便利です。それを示すために独自のクラスで。既存のタイプを再利用したい場合は、Tuple<string,string>おそらく最良の選択です。

于 2012-07-17T15:11:16.383 に答える
0

ADictionaryはハッシュされたロケーション キーであるため、辞書に重複を含めることはできません。または<string,string>のいずれかを使用して、タイプのリストを持つことができますKeyValuePairTuple

于 2012-07-17T15:10:35.497 に答える
0

AList<KeyValuePair<string, string>>は、.NET 3.5 以下の場合はおそらくうまく機能し、4 以上の場合List<Tuple<string, string>>は勝者になります。

于 2012-07-17T15:12:33.133 に答える
0

を使ってみてくださいList<KeyValuePair<string, string>>

于 2012-07-17T15:09:15.633 に答える