我有一个数据集objds.objds包含一个名为Table1的表.Table1包含名为ProcessName的列.这个ProcessName包含重复的名称.所以我想只选择不同的名称.这是可能的.
intUniqId[i] = (objds.Tables[0].Rows[i]["ProcessName"].ToString());
Thomas Leves.. 350
DataView view = new DataView(table); DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);
好的,那么你需要分组,而不是分开.您可以使用Linq to DataSet:`table.AsEnumerable().GroupBy(row => row.Field
小智.. 143
单行代码将避免重复的行DataTable
:
dataTable.DefaultView.ToTable(true, "employeeid");
哪里:
第一个参数ToTable()
是一个布尔值,表示你是否想要不同的行.
第二个参数ToTable()
是列名,我们必须根据它来选择不同的行.只有这些列将在返回的数据表中.
同样可以DataSet
通过访问特定的a来完成DataTable
:
dataSet.Tables["Employee"].DefaultView.ToTable(true, "employeeid");
我最喜欢它,因为它解释了使用的代码:) (12认同)
我最喜欢这个答案,因为它指向`DataTable`的`DefaultView`属性. (5认同)
Martin Moser.. 57
DataTable dt = new DataTable(); dt.Columns.Add("IntValue", typeof(int)); dt.Columns.Add("StringValue", typeof(string)); dt.Rows.Add(1, "1"); dt.Rows.Add(1, "1"); dt.Rows.Add(1, "1"); dt.Rows.Add(2, "2"); dt.Rows.Add(2, "2"); var x = (from r in dt.AsEnumerable() select r["IntValue"]).Distinct().ToList();
Zain Ali.. 29
使用LINQ(.NET 3.5,C#3)
var distinctNames = ( from row in DataTable.AsEnumerable() select row.Field("Name")).Distinct(); foreach (var name in distinctNames ) { Console.WriteLine(name); }
小智.. 15
你可以这样使用:
data
是 DataTable
data.DefaultView.ToTable(true, "Id", "Name", "Role", "DC1", "DC2", "DC3", "DC4", "DC5", "DC6", "DC7");
但表现会下降.尝试使用以下代码:
data.AsEnumerable().Distinct(System.Data.DataRowComparer.Default).ToList();
表现; http://onerkaya.blogspot.com/2013/01/distinct-dataviewtotable-vs-linq.html
DataView view = new DataView(table); DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);
单行代码将避免重复的行DataTable
:
dataTable.DefaultView.ToTable(true, "employeeid");
哪里:
第一个参数ToTable()
是一个布尔值,表示你是否想要不同的行.
第二个参数ToTable()
是列名,我们必须根据它来选择不同的行.只有这些列将在返回的数据表中.
同样可以DataSet
通过访问特定的a来完成DataTable
:
dataSet.Tables["Employee"].DefaultView.ToTable(true, "employeeid");
DataTable dt = new DataTable(); dt.Columns.Add("IntValue", typeof(int)); dt.Columns.Add("StringValue", typeof(string)); dt.Rows.Add(1, "1"); dt.Rows.Add(1, "1"); dt.Rows.Add(1, "1"); dt.Rows.Add(2, "2"); dt.Rows.Add(2, "2"); var x = (from r in dt.AsEnumerable() select r["IntValue"]).Distinct().ToList();
使用LINQ(.NET 3.5,C#3)
var distinctNames = ( from row in DataTable.AsEnumerable() select row.Field("Name")).Distinct(); foreach (var name in distinctNames ) { Console.WriteLine(name); }
你可以这样使用:
data
是 DataTable
data.DefaultView.ToTable(true, "Id", "Name", "Role", "DC1", "DC2", "DC3", "DC4", "DC5", "DC6", "DC7");
但表现会下降.尝试使用以下代码:
data.AsEnumerable().Distinct(System.Data.DataRowComparer.Default).ToList();
表现; http://onerkaya.blogspot.com/2013/01/distinct-dataviewtotable-vs-linq.html
var distinctRows = (from DataRow dRow in dtInventory.Rows select dRow["column_name"] ).Distinct(); var distinctRows = (from DataRow dRow in dtInventory.Rows select dRow["col1"], dRow["col2"].. ).Distinct();
为了改进上面的答案:dataview上的ToTable函数有一个"distinct"标志.
//This will filter all records to be distinct dt = dt.DefaultView.ToTable(true);