在C#中更改FSharpList

时间:2014-10-17 16:44:06

标签: c# f# c#-to-f#

FSharpList<FSharpList<int>> newImageList;
FSharpList<int> row;
for(int i = 0; i < CurrentImage.Header.Height)
{
    row = PPMImageLibrary.GrayscaleImage(CurrentImage.ImageListData);
    newImageList.Head = row;
}

上面我正在尝试获取一个int列表并将每个索引设置为一个int列表。显然我不能用.Head来做,如果可以,它只会改变第一个索引。我想知道我怎么可能做这个工作,我很难获得newImageList的任何索引。

1 个答案:

答案 0 :(得分:4)

FSharpList是一个不可变列表。因此,您无法分配其头部和尾部属性。但是,您可以尝试将FSharp列表添加到通用C#列表或任何继承IEnumerable的集合中。例如,从您的代码:

List<int> newImageList = new List<int>();

for(int i = 0; i < CurrentImage.Header.Height)
{
   newImageList.AddRange(PPMImageLibrary.GrayscaleImage(CurrentImage.ImageListData)); // I am assuming your GrayscaleImage method might return multiple records.

}

我希望这会有所帮助。