時々C#3.0でタプルの概念をシミュレートする方法を探していました。時間が経つにつれて、私は様々な "貧乏人の" 実装を持っていた、ここではそれらのほんの一部です:C#3.0タプル相当(男性用)
基本的なオブジェクトの配列:
object[] poorTuple = new object[]{foo,bar,baz}; // basic object array
より強くHoHoHo、型付き...
KeyValuePair<TypeA, KeyValuePair<TypeB, TypeC>> poorTuple;
タイプ推論を使用できるクラス(Functional Programming for the Real Worldから持ち上げたもの)
を実装していますpublic static class Tuple{
public static Tuple<T1, T2> Create<T1 foo, T2 bar>{
return new Tuple<T1, T2>(foo, bar);
}
}
// later:
var data = Tuple.Create("foo", 42);
質問:
C#3.0(またはデータ構造を欠い選択した言語)で貧乏人のタプルを持っている任意の他の方法。
とは何ですか? C#3.0でタプルを取得する方法 - 誰でもライブラリの勧告があれば歓迎します。
リストやタプルのような特定のタイプではなく、特定のタイプを作成するのは理にかなっていますか? (親指のルールを探して)
匿名型は、それを作成するメソッドの外部に渡すことはできません。 – Rory
@Rory:それは完全に真実ではありません... http://msmvps.com/blogs/jon_skeet/archive/2009/01/09/horrible-grotty-hack-returning-an-anonymous-type-instance.aspx ...それは同じアセンブリでのみ動作します。また、リフレクトトリックを使用することもできます(ASP.Net MVCフレームワークを参照してください) –