Edw*_*uay 16 c# generics casting list
好吧,我放弃了,你怎么在一条线上做到这一点?
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
//List<string> fields = values.ToList<string>();
//List<string> fields = values as List<string>;
//List<string> fields = (List<string>)values;
List<string> fields = new List<string>();
foreach (object value in values)
{
fields.Add(value.ToString());
}
//process the fields here knowning they are strings
...
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ton 48
你在LINQ上使用C#3.0吗?这很简单:
List<string> fields = values.Select(i => i.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)
Nol*_*rin 16
如果您有LINQ可用(在.NET 3.5中)和C#3.0(对于扩展方法),那么有一个很好的一个衬里:
var list = values.Cast<string>().ToList();
Run Code Online (Sandbox Code Playgroud)
你不会比你为.NET 2.0/C#2.0发布的内容更短.
警告:我刚刚意识到你object[]不一定是那种类型string.如果事实确实如此,请使用Matt Hamilton的方法,这样可以很好地完成工作.如果数组的元素实际上是类型的string,那么我的方法当然会起作用.
C#2.0:
List<string> stringList = new List<string>(Array.ConvertAll<object,string>(values, new Converter<object,string>(Convert.ToString)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62715 次 |
| 最近记录: |