我有一些數據來自並且我基於字符串對象的字典列表中的類型生成dataTable。我遇到的問題是代碼檢查Dictionary FirstOrDefault來構建數據表,但如果其中任何值爲null,則很快就會炸燬。如果FirstOrDefault爲空,則通過字典循環來查找dataType
有沒有一種方法,我可以採取下面的代碼,並遍歷剩餘的字典值如果一個特定的key.Value是空的那些第一組值中試圖找到一個有效的類型?
我試着簡單地檢查並設置類型爲字符串,但是如果該列中有任何實際值失敗(例如dateTime設置爲字符串時)。我想遍歷所有key.Key類型的值,試圖發現是否有任何單元格有類型,如果它們全都爲null,那麼該字符串將工作。
public DataTable(IEnumerable<Dictionary<string, object>> source)
{
if (source != null)
{
var firstItem = source.FirstOrDefault();
if (firstItem != null)
{
//foreach (var item in source)
//{
// var u = item.Values;
// var t = item.Keys;
//}
foreach (var key in firstItem)
{
if (key.Value == null) //check if value is null and try and find the next value for that key.Key that isn't
{
foreach (var item in source)
{
var kk = key.Key;
var ik = item.Keys;
}
//...some logic to try and find if the key.Key Value in question has any legitimate value other than null to set the DataType to
//set value to some type here to avoid things blowing up.
Columns.Add(new DataColumn() { ColumnName = key.Key, DataType = typeof(string) });
}
else
{
Columns.Add(new DataColumn() { ColumnName = key.Key, DataType = key.Value.GetType() });
}
}
foreach (var item in source)
{
var row = new DataRow();
foreach (var key in item)
{
row[key.Key] = key.Value;
}
Rows.Add(row);
}
}
}
}
是你的方法聲明一樣,或者是一個錯字?它必須是或否則它不會編譯。 – terrybozzio
你有一個詞典的集合?你的描述很混亂,你的代碼很複雜。你能否提供一些代碼來顯示你的字典集合是什麼樣的?並更清楚地解釋你想完成什麼? –