Ahm*_*med 158 c# datatable select distinct
我有一个数据集objds.objds包含一个名为Table1的表.Table1包含名为ProcessName的列.这个ProcessName包含重复的名称.所以我想只选择不同的名称.这是可能的.
intUniqId[i] = (objds.Tables[0].Rows[i]["ProcessName"].ToString());
Run Code Online (Sandbox Code Playgroud)
Tho*_*que 350
DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);
Run Code Online (Sandbox Code Playgroud)
小智 143
单行代码将避免重复的行DataTable:
dataTable.DefaultView.ToTable(true, "employeeid");
Run Code Online (Sandbox Code Playgroud)
哪里:
第一个参数ToTable()是一个布尔值,表示你是否想要不同的行.
第二个参数ToTable()是列名,我们必须根据它来选择不同的行.只有这些列将在返回的数据表中.
同样可以DataSet通过访问特定的a来完成DataTable:
dataSet.Tables["Employee"].DefaultView.ToTable(true, "employeeid");
Run Code Online (Sandbox Code Playgroud)
Mar*_*ser 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();
Run Code Online (Sandbox Code Playgroud)
Zai*_*Ali 29
使用LINQ(.NET 3.5,C#3)
var distinctNames = ( from row in DataTable.AsEnumerable()
select row.Field<string>("Name")).Distinct();
foreach (var name in distinctNames ) { Console.WriteLine(name); }
Run Code Online (Sandbox Code Playgroud)
小智 15
你可以这样使用:
data 是 DataTable
data.DefaultView.ToTable(true, "Id", "Name", "Role", "DC1", "DC2", "DC3", "DC4", "DC5", "DC6", "DC7");
Run Code Online (Sandbox Code Playgroud)
但表现会下降.尝试使用以下代码:
data.AsEnumerable().Distinct(System.Data.DataRowComparer.Default).ToList();
Run Code Online (Sandbox Code Playgroud)
表现; http://onerkaya.blogspot.com/2013/01/distinct-dataviewtotable-vs-linq.html
小智 13
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();
Run Code Online (Sandbox Code Playgroud)
为了改进上面的答案:dataview上的ToTable函数有一个"distinct"标志.
//This will filter all records to be distinct
dt = dt.DefaultView.ToTable(true);
Run Code Online (Sandbox Code Playgroud)
小智 5
后续作品。我可以使用 .NET 3.5 SP1 来使用它
// Create the list of columns
String[] szColumns = new String[data.Columns.Count];
for (int index = 0; index < data.Columns.Count; index++)
{
szColumns[index] = data.Columns[index].ColumnName;
}
// Get the distinct records
data = data.DefaultView.ToTable(true, szColumns);
Run Code Online (Sandbox Code Playgroud)
小智 5
句法:-
DataTable dt = ds.Tables[0].DefaultView.ToTable(true, "ColumnName");
Run Code Online (Sandbox Code Playgroud)
前任:-
DataTable uniqueCols = dsUDFlable.Tables[0].DefaultView.ToTable(true, "BorrowerLabelName");
Run Code Online (Sandbox Code Playgroud)