LINQによって提供される.ToLookup
関数に複数のキーを必要とする方法はありますか?複数のキーを参照する
これは最初は直感的ではないようですが、実際にこれを行う方法はないと思いますが、誰かが方法を知っていることを期待しています。
基本的には、2つの値、たとえばstring
とint
をルックアップし、それらの2つの値でオブジェクトを取得できるようにしたいと考えています。
例
public class MyClass {
public string StringProp {get;set;}
public int IntProp {get;set;}
public object MoreData {get;set;}
}
public class Main {
public void Main() {
HashSet<MyClass> set = new HashSet<MyClass>();
set.Add(new MyClass {StringProp = "a", IntProp = 1, MoreData = null});
set.Add(new MyClass {StringProp = "c", IntProp = 4, MoreData = new object()});
set.Add(new MyClass {StringProp = "a", IntProp = 2, MoreData = "upupdowndown"});
set.Add(new MyClass {StringProp = "c", IntProp = 1, MoreData = string.Empty});
set.Add(new MyClass {StringProp = "c", IntProp = 4, MoreData = string.Empty});
// Using 'var' because I don't know how this would be defined.
// I recognize that this will not compile - but this is what I'm trying to do.
var lookup = set.ToLookup(x => x.StringProp && x.IntProp)
MyClass c = lookup["a", 1].First(); // Should return the first element
IEnumerable<MyClass> list = lookup["c", 4]; // Should return the 2nd and last elements
}
}
私はこれがどのように役立つかを見ていけません。 – DarthVader
おかげでガベ。私はそれを少し試して、それがどのように機能するかを伝えます。 – Merwer