1

DataTable から行の個別のサブセットを抽出する必要があり、LINQ2DataSets はこれを行うのに便利でクリーンな方法であると考えましたが、次のように LINQ2DS クエリから返される行を単純に識別することはできないようです

var result = from r in fips.AsEnumerable() select
r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
r.Field<string>("PROCESS_SUB_GROUP_NAME"),
r.Field<string>("...

最初のコンマの後にエラーが発生し始めます。

これは正しい仮定ですか? Distinct() メソッドを適用できるデータセットから列のサブセットを返すにはどうすればよいでしょうか?

4

1 に答える 1

4

新しいステートメントとフィールド名を忘れました:

var result = from r 
    in fips.AsEnumerable() 
    select new
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    };

型を使用することを明示的に宣言することもできます。

var result = from r 
    in fips.AsEnumerable() 
    select new MyType("InitClassParams") 
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    };

Scott Guthrie (VP Developer Devision、Microsoft) は、LINQ に関する有益な情報を提供しています (彼は LINQ to SQL について話していますが、そのほとんどは関係なく当てはまります)。

次に、distinct 句を適用します。

var result = from r 
    in fips.AsEnumerable() 
    select new
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    }
    distinct;

次に、それをリストに入れるか、それを繰り返します。次のようなものが実行されるまで、何も選択/区別/その他されません:

var list = result.ToList()
foreach(var item in result) {}
于 2008-11-14T01:39:56.067 に答える