जिज्ञासा से बाहर मैं चाहते हैं पता है कि कैसे सबसे अच्छा एक वर्ग है कि CA1006 चेतावनी से बचने के लिएCA1006 से बचने के लिए जेनेरिक आईनेमेरेबल या IDictionary को कैसे कार्यान्वित करें?
CA1006 इस्तेमाल किया जा सकता लागू करने के लिए: Microsoft.Design: एक डिजाइन पर विचार करें जहां 'IReader.Query (स्ट्रिंग, स्ट्रिंग) 'जेनेरिक प्रकार घोंसला नहीं है' IList (IDictionary (स्ट्रिंग, ऑब्जेक्ट का)) '।
इस विधि है कि जेनेरिक प्रकार
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