我有一個方法需要(object value)
並將其轉換爲string
並帶有一些棘手的規則。IEnumerable <object>來自IEnumrable的對象<T>
其中一個規則與值爲IEnumerable
時有關。在這種情況下,我需要在枚舉處理每個文件:
public string Convert(object value)
{
var valuetype = value.GetType();
if (valuetype.GetInterface("IList") != null)
{
var e = (IEnumerable<object>) value;
return e.Count() == 0 ?
"" :
e.Select(o=>Convert(o)).Aggregate("", (c, s) => c+s);
}
}
當然,如果值是List<string>
,例如,線
var e = (IEnumerable<object>) value;
拋出異常
Unable to cast object of type 'System.Collections.Generic.List`1[System.String]' to type 'System.Collections.Generic.IEnumerable`1[System.Object]'.
任何想法,我怎麼能擺脫它?
你是指集合中的每個項目? – msarchet
你剛加入字符串到一起嗎? –
您使用的是.net版本比4更舊? – CodesInChaos