[英]Datatable select value where field type is unknown or at run time
我有一個簡單的linq查詢
linqdt.AsEnumerable()
.Where(w => (w.Field<string>(options.SelectedColumn)).Contains(options.Value))
.CopyToDataTable();
如果SelectedColumn類型為字符串(a.Field),這將返回我的結果。 現在我的問題是option.SelectedColumn可能是多種類型。 它可能是字節,日期,GUID等,我在運行時才知道這些類型。
我想知道是否有什么辦法可以傳遞像w.Field這樣的變量,並且該變量包含基於SelectedColumn的數據類型? 如果否,還有其他可能性嗎?
任何幫助將受到高度贊賞
由於Contains
僅適用於字符串值,因此我將使用if
語句檢查字符串值,並將非通用列訪問器和Equals
用於其他列:
DataTable result;
if(linqdt.Columns[options.SelectedColumn].DataType == typeof(string))
result = linqdt.AsEnumerable()
.Where(w => (w.Field<string>(options.SelectedColumn))
.Contains(options.Value))
.CopyToDataTable();
else
result = linqdt.AsEnumerable()
.Where(w => (w[options.SelectedColumn]).Equals(options.Value))
.CopyToDataTable();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.