0
다음 코드는 CSV 파일을 DataTable로 읽습니다. 그런 다음 DataTable의 모든 열을 통해 루프 및 LINQ 쿼리 사용하여 각 열의 모든 고유 값의 수를 생성하려고 :보다 결코 더Linq GroupBy 쿼리가 올바른 카운트 값을 반환하지 않는 이유는 무엇입니까?
var g = allValues.AsEnumerable().GroupBy(i => i);
은 왜이다 "grp.Count()"값을 1 모든 열에 중복 값이 포함되어 있음을 알고 있더라도? DataRow
의
private void button13_Click(object sender, System.EventArgs e)
{
DataSet ds = GetDataFromCSVFile(-1);
DataTable table = ds.Tables[0];
int test = 0;
string[] columnToSearch = { "" };
IList<ColumnDetail> colDetails = new List<ColumnDetail>();
foreach (DataColumn col in table.Columns)
{
columnToSearch[0] = col.ToString();
DataTable allValues = GetAllValuesFromColumn(table, columnToSearch);
var g = allValues.AsEnumerable().GroupBy(i => i);
test = 0;
foreach (var grp in g)
{
if (grp.Count() > 1)
MessageBox.Show(" grp.Key.ItemArray[0].ToString() : " + grp.Key.ItemArray[0].ToString() + " Cnt: " + grp.Count());
test++;
}
MessageBox.Show("Count is: " + test);
}
}
감사합니다. 그게 내 문제를 해결해 줬어. 줄을 수정했습니다 : var g = allValues.AsEnumerable(). GroupBy (i => i); var g = allValues.AsEnumerable(). GroupBy (i => i, DataRowComparer.Default); – xpanzive