UserList 是一个词典列表,如:
[
  {Name:"Alex",Age:25},
  {Name:"Peter",Age:35},
  {Name:"Muhammad",Age:28},
  {Name:"Raul",Age:29}
]
RowColorList 是一个颜色列表: [#bcf,#fc0]
新UserList应包含一个RowColor为每名,从顺序拍摄RowColorList:
[
  {Name:"Alex",Age:25,RowColor:#bcf},
  {Name:"Peter",Age:35,RowColor:#fc0},
  {Name:"Muhammad",Age:28,RowColor:#bcf},
  {Name:"Raul",Age:29,RowColor:#fc0}
]
我尝试了以下代码:
UserList.Zip(RowColorList,(user,color) => user.Add("RowColor",color))
使用此代码,new UserList将只包含任意数量的条目RowColorList.RowColorList每当可用的颜色用完时,我希望他从头开始.怎么样?
你可以创建一个函数来返回无限的可枚举Color/ string(或者不管RowColor是什么类型)
public IEnumerable<Color> InfiniteColors()
{
    while (true)
    {   
        foreach (var color in RowColors)
        {
            yield return color;
        }
    }
}
然后,这可以与任何Linq yield return扩展方法一起使用,例如IEnumerable.
UserList.Zip(InfiniteColors(),(user,color) => user.Add("RowColor",color))
| 归档时间: | 
 | 
| 查看次数: | 242 次 | 
| 最近记录: |