Value
というオブジェクトのリストがあるとします。 Value
はName
性質を持っていますLinqを使用して連続して繰り返す要素を見つけよう
private List<Value> values = new List<Value> {
new Value { Id = 0, Name = "Hello" },
new Value { Id = 1, Name = "World" },
new Value { Id = 2, Name = "World" },
new Value { Id = 3, Name = "Hello" },
new Value { Id = 4, Name = "a" },
new Value { Id = 5, Name = "a" },
};
は今、私はすべての「繰り返し」の値(nameプロパティは、前の要素のnameプロパティと一致した要素)のリストを取得したいです。
この例では、2つの要素 "world"と "a"(id = 2と5)を返すリストが必要です。
このイベントはlinqで可能ですか? もちろん、私はとてもかわいいかもしれません。このように:私は、より複雑な状況では、このクエリを使用したいので、
List<Value> tempValues = new List<Value>();
String lastName = String.Empty();
foreach (var v in values)
{
if (v.Name == lastName) tempValues.Add(v);
lastName = v.Name;
}
けど、多分「linqish」解決策があります。
これはZipメソッドより効率的です。しかし、私は郵便番号のメソッドが少し良くなっていることを知っています(それは何よりもはっきりしています) –
+1これは良い答えです –
魅力のように動作します –