Bre*_*ett 2 c# generics generic-list .net-4.0
任何人都可以帮我弄清楚如何简化这段代码,而不使用ArrayList?
List<Pair> material = new List<Pair>();
List<string> list = new List<string>();
string tempStr;
int integer = -1;
foreach (string s in ((string)Value).Split(new char[1] { ',' }))
{
if (int.TryParse(s, out integer))
{
tempStr = NameValue.AllKeys[integer];
if (someCondition == true)
{
material.Add(new Pair(tempStr, integer));
}
else
{
list.Add(tempStr);
}
}
}
if(someCondition == true)
{
return material.ExtensionMethodForLists();
}
else
{
return list.ExtensionMethodForLists();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试过类似下面的内容时,我会因为没有初始化一个有意义的类型变量而出错.
var list;
if(someCondition == true)
{
list = new List<Pair>();
}
else
{
list = new List<string>();
}
Run Code Online (Sandbox Code Playgroud)
如果使用不同的类型,则需要为变量使用非泛型类型:
IList list;
if(someCondition == true)
{
list = new List<Pair>();
}
else
{
list = new List<string>();
}
Run Code Online (Sandbox Code Playgroud)
要么
IList list = someCondition ? (IList)new List<Pair>() : new List<string>();
Run Code Online (Sandbox Code Playgroud)
就个人而言,我不确定它是一个伟大的设计,但它满足要求.
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |