데이터 세트 객체가 있습니다. objds에는 Table1이라는 테이블이 있습니다. Table1에는 ProcessName이라는 열이 있습니다. 이 ProcessName에 반복되는 이름이 포함되어 있으므로 고유 한 이름 만 선택하고 싶습니다.
intUniqId[i] = (objds.Tables[0].Rows[i]["ProcessName"].ToString());
답변
DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);
답변
한 줄의 코드를 따르면 DataTable
: 의 중복 행을 피할 수 있습니다 .
dataTable.DefaultView.ToTable(true, "employeeid");
어디:
-
의 첫 번째 매개 변수는
ToTable()
A는 부울 는 별개의 행이나하지 여부를 나타냅니다. -
의 두 번째 매개 변수는
ToTable()
고유 한 행을 선택해야하는 열 이름입니다. 이 열만 리턴 된 데이터 테이블에 있습니다.
DataSet
특정에 액세스하여 에서 동일한 작업을 수행 할 수 있습니다 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<string>("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 함수에는 “고유 한”플래그가 있습니다.
//This will filter all records to be distinct
dt = dt.DefaultView.ToTable(true);