“yield”的使用???不明白???
yield”的作用是什么??? 查了MSDN没看出问题。。。
实例:
var datasource = GetEnumerable(dicList).ToDataSource();
public IEnumerable<IDictionary> GetEnumerable(List<Dictionary<string, string>> SourceList)
{
for (int i = 0; i < SourceList.Count; i++)
{
var dict = new Dictionary<string, string>();
dict = SourceList[i];
yield return dict;
问题一:“yield”的作用是什么???
问题二:循环为“dict”执行扩展方法“ToDataSource”,是吗???问题
三:“GetEnumerable(dicList).ToDataSource();”返回的是“List<>”类型,有点不解。
}
}
public static class DataSourceCreator
{
private static readonly Regex PropertNameRegex =
new Regex(@"^[A-Za-z]+[A-Za-z1-9_]*$", RegexOptions.Singleline);
public static List<object> ToDataSource(this IEnumerable<IDictionary> list)
{
IDictionary firstDict = null;
bool hasData = false;
foreach (IDictionary currentDict in list)
{
hasData = true;
firstDict = currentDict;
break;
}
[解决办法]
yield 就是讲return结果加到返回的枚举中,比如
- C# code
private IEnumerable<int> Get_List() { for (int i = 0; i < 100; i++) { yield return i; //将i的值加到IEnumerable中 } }调用IEnumerable<int> list = Get_List();list中就是从0-100的100个值
[解决办法]