出於好奇,我想知道如何最好地實現,可以用來避免CA1006警告如何實現泛型IEnumerable或IDictionary來避免CA1006?
CA1006類:Microsoft.Design:考慮設計,其中「IReader.Query(字符串,字符串) '不嵌套泛型類型'IList(Of IDictionary(Of String,Object))'。
這是返回泛型類型
public virtual IList<IDictionary<string, object>> Query(
string fullFileName,
string sheetName)
{
using (var connection = new OdbcConnection(
this.GetOdbcConnectionString(fullFileName)))
{
connection.Open();
return connection
.Query(string.Format(
CultureInfo.InvariantCulture,
SystemResources.ExcelReader_Query_select_top_128___from__0_,
sheetName))
.Cast<IDictionary<string, object>>()
.ToList();
}
}
喜歡的東西
SourceData<T, U> Query(string fullFileName, string sheetName)
SourceData Query(string fullFileName, string sheetName)
編輯方法:
繼馬克的建議,我封裝嵌套通用在這個類
public class QueryRow : List<KeyValuePair<string, object>>
{
protected internal QueryRow(IEnumerable<KeyValuePair<string, object>> dictionary)
{
this.AddRange(dictionary.Select(kvp => kvp));
}
}
字典列表的意圖是什麼?是具有鍵值的行(即通過列名訪問的單元格)? –
每個字典是一行,其中每個鍵是列標題,值是單元格值 – mrt181
代替'.Cast'是否可以不使用'.ToDictionary'? – IAbstract