如何獲得返回數(shù)據(jù)表的結(jié)果?linq我正在嘗試以下線程的解決方案:選擇具有重復值的數(shù)據(jù)表的所有記錄但它無法為我編譯。這是我的代碼IEnumerable<DataRow> dtrow = default(IEnumerable<DataRow>);dtrow = dtTable.AsEnumerable().GroupBy(x => x["MerkTypeID"]).Where(x => x.Count() > 1);using (DataTable table = dtrow.CopyToDataTable()){}但VS給出了這個錯誤錯誤 CS0266 無法將類型隱式轉(zhuǎn)換為 。存在顯式轉(zhuǎn)換(您是否缺少強制轉(zhuǎn)換?System.Collections.Generic.IEnumerable<System.Linq.IGrouping<object, System.Data.DataRow>>System.Collections.Generic.IEnumerable<System.Data.DataRow>我也試過這樣var dtrow = dtTable.AsEnumerable().GroupBy(x => x["MerkTypeID"]).Where(x => x.Count() > 1);using (DataTable table = dtrow.CopyToDataTable()){}但現(xiàn)在我得到這個錯誤錯誤 CS0311 該類型不能用作泛型類型或方法中的類型參數(shù)“T”。沒有從 到 的隱式引用轉(zhuǎn)換。System.Linq.IGrouping<object, System.Data.DataRow>DataTableExtensions.CopyToDataTable<T>(IEnumerable<T>)System.Linq.IGrouping<object, System.Data.DataRow>System.Data.DataRow那么如何做到這一點呢?為什么它似乎在我找到此代碼的鏈接中起作用?編輯我嘗試了亨利的這個建議:IEnumerable<DataRow> dtrow = default(IEnumerable<DataRow>);dtrow = (IEnumerable<DataRow>)gttDataTableOpdrachtCar.Table.AsEnumerable().GroupBy(x => x["MerkTypeID"]).Where(x => x.Count() > 1);using (DataTable table = dtrow.CopyToDataTable())這編譯,但在運行時我得到這個錯誤:其他信息:無法將類型為“WhereEnumerableIterator2[System.Object,System.Data.DataRow]]”的對象強制轉(zhuǎn)換為類型“System.Collections.Generic.IEnumerable'1[System.Data.DataRow]”。1[System.Linq.IGrouping
2 回答

至尊寶的傳說
TA貢獻1789條經(jīng)驗 獲得超10個贊
您可以使用以下代碼:
var result = dtTable.AsEnumerable().GroupBy(x => x["MerkTypeID"]) .Where(x => x.Count() > 1) .SelectMany(x => x.ToList()) .CopyToDataTable();
如果按 對行進行分組,則返回具有多個成員的組的所有行。MerkTypeID

MMMHUHU
TA貢獻1834條經(jīng)驗 獲得超8個贊
類型不匹配。這就是編譯器告訴你的。執(zhí)行 .GroupBy clasue,它創(chuàng)建了一個組的集合,據(jù)我所知,您需要DataRows的平面集合。
你需要擺脫.GroupBy clause,或?qū)⒔M集合轉(zhuǎn)換為平面列表。現(xiàn)在,您有一個組集合,每個“MerkTypeID”對應一個組,每個組都包含具有該 MerkTypeID 值的所有記錄。
- 2 回答
- 0 關(guān)注
- 114 瀏覽
添加回答
舉報
0/150
提交
取消