我正在尝试编写一个通用静态函数,它接受IEnumerable类的一个实例、的一个属性名和一个字符串分隔符。它将在实例中循环,并与实例的每个成员一起计算属性,收集以分隔符隔开的单个字符串中返回的值。
例如,如果我的集合类包含Person实例,属性名为“姓氏”,分隔符为“,”,我可能会返回:“Smith”、“Kleine”、“Beecham”。然后,我可能会用单引号将其括起来,并将其用作SQL中的列表。
我的问题是我不知道如何迭代IEnumerable。到目前为止,我的代码是:
public static string EnumerableItem2Str<T>(IEnumerable<T> oItems, string cPropertyName, string cSep)
{
string cOP = "";
try
{
foreach (<T> oItem in oItems)
{
cOP += CoreHelper.GetPropertyValue(oItems, cPropertyName).ToString();
if (oItem != oItems.Last()) cOP += cSep;
}
return cOP;
}
catch (Exception ex)
{
return "";
}
}
public static object GetPropertyValue(object o, string cPropertyName)
{
return o.GetType().GetProperty(cPropertyName).GetValue(o, null);
}
我在电话里出错了
foreach (<T> oItem in oItems)
第一个是“预期类型”
<T>
.
如何迭代
oItems
让每个实例都包含在其中?