9

私はデータテーブルを持っています:

DataTable table = new DataTable();

DataColumn column;

column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "RelationshipTypeDescription";
table.Columns.Add(column);

column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "RelatedContactName";
table.Columns.Add(column);

DISTINCT COUNT OF COLUMN "RelationshipTypeDescription" を知りたいです。

これで列名を参照する方法がわかりません:

int relationshipCount = table.AsEnumerable().Distinct().Count();

誰か手を貸してくれませんか?

4

2 に答える 2

15

あなたはこれを行うことができます:

int relationshipCount = table
    .AsEnumerable()
    .Select(r => r.Field<string>("RelationshipTypeDescription"))
    .Distinct()
    .Count();

しかし、おそらく呼び出す必要はありませんAsEnumerable:

int relationshipCount = table
    .Select(r => r.Field<string>("RelationshipTypeDescription"))  // Compiler error: "Cannot convert lambda expression to type 'string' because it is not a delegate type"
    .Distinct()
    .Count();
于 2013-08-14T21:46:29.710 に答える
6

テーブルの個別の値のみを含む新しいデータテーブルを作成することもできます。

DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "RelationshipTypeDescription");

詳細: https://stackoverflow.com/a/1199956/1822214

http://msdn.microsoft.com/en-us/library/wec2b2e6.aspx

于 2013-08-14T21:51:52.600 に答える