我有一个IList的对象.它们的类型为NHibernate.Examples.QuickStart.User.还有一个EmailAddress公共字符串属性.
现在我可以使用for循环遍历该列表.
是否可以通过简单的for循环遍历Ilist?
因为简单地将IList视为一个数组似乎不起作用......
System.Collections.IList results = crit.List();
foreach (NHibernate.Examples.QuickStart.User i in results)
{
Console.WriteLine(i.EmailAddress);
}
for (int i = 0; i < results.Count; ++i)
{
Console.WriteLine(results[i].EmailAddress); // Not Working
}
Run Code Online (Sandbox Code Playgroud)
由于您使用的是非通用IList,因此您需要转换值:
for (int i = 0; i < results.Count; ++i)
{
Console.WriteLine(((NHibernate.Examples.QuickStart.User)results[i]).EmailAddress); // Not Working
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过将第1行更改为:来使IList成为通用版本:
System.Collections.IList<NHibernate.Examples.QuickStart.User> results = crit.List();
请注意,对于此解决方案,您必须更改crit.List()函数以返回此类型.