使用 F# 列表

在 C# 中使用 F# 的列表,是全然可能的,可是,我建议不要用,由于,仅仅要再做一点,就会使事情在 C# 看来更加自然。比如,把列表转换成数组非常easy。用List.toArray 函数;转换成System.Collections.Generic.List。用 new ResizeArray<_>()构造函数;转换成System.Collections.Generic.IEnumerable,用 List.toSeq 函数。这些类型的使用对于C# 程序猿来说。实在是太简单了,特别是System.Array
和System.Collections.Generic.List。由于它们提供了非常多的成员方法,能够在列表返回到调用的client之前,直接做转换。而在 F# 代码中使用 F# 列表类型全然可行的。MSDN 建议使用System.Collections.ObjectModel 命名空间下的 Collection 或 ReadOnlyCollection公开集合。这两个类都有一个接收IEnumerable 的构造函数,也能够从 F# 列表中构造。

当然,假设须要直接返回 F# 列表,也行。就如以下的样例:

module Strangelights.DemoModule

// gets a preconstructed list

let getList()=

[1; 2; 3]

要在 C# 中使用这个列表,通经常使用foreach 循环:

using System;

using Strangelights;

usingMicrosoft.FSharp.Core;

usingMicrosoft.FSharp.Collections;

class
Program

{

static
void Main(string[] args)

{

// get the list ofintegers

List<int> ints =
DemoModule.getList();

// foreach over thelist printing it

foreach (int iin ints)

{

Console.WriteLine(i);

}

}

}

演示样例的执行结果例如以下:

1

2

3

使用 F# 列表的更多相关文章

  1. 使用F#来实现哈夫曼编码吧

    最近算法课要求实现哈夫曼编码,由于前面的问题都是使用了F#来解决,偶然换成C#也十分古怪,报告也不好看,风格差太多.一开始是打算把C#版本的哈夫曼编码换用F#来写,结果写到一半就觉得日了狗了...毕竟 ...

  2. [Python Study Notes]列表操作

    列表操作 a.切片 >>> names = ["Alex","Tenglan","Eric","Rain&quo ...

  3. python 列表list相关知识

    List的元素可以是Python的任意数据类型(Boolean,Number,String,List,Dict,Set……) List同样可以使用索引和切片,切片得到的结果也是列表. print(li ...

  4. python 之 列表生成式、生成器表达式、模块导入

    5.16 列表生成式 l=[]for i in range(100):    l.append('egg%s' %i)print(l)​l=['egg%s' %i for i in range(100 ...

  5. [转]符号和运算符参考 (F#)

    本文转自:http://msdn.microsoft.com/zh-cn/library/dd233228.aspx 本主题包含一个表,其中列出了 F# 语言中使用的符号和运算符. 符号和运算符表   ...

  6. 常用查找数据结构及算法(Python实现)

    目录 一.基本概念 二.无序表查找 三.有序表查找 3.1 二分查找(Binary Search) 3.2 插值查找 3.3 斐波那契查找 四.线性索引查找 4.1 稠密索引 4.2 分块索引 4.3 ...

  7. CSS的相对定位和就对定位

    1.元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,top这些偏移属性都是没有效果的, 使用相 ...

  8. HTML快速入门4

    七.表单 1. 概述 建立交互式的站点,需要使用 HTML 表单,它可以让用户提供信息,并对此作出处理.可以建立类似 复选框.单选按钮及文本框的控件. 掌握表单的使用对 Active Server P ...

  9. Web网站常规测试方法

    功能测试 1. 安装测试: 安装过程中对于缺省安装目录及任意指定的安装目录,是否都能正确安装: 若是选择安装,查看能否实现其相应的功能: 在所有能中途退出安装的位置退出安装程序后,验证此程序并未安装成 ...

随机推荐

  1. PCB 奥宝LDI 输出正负片转换关系

    今天继续对P2 奥宝LDI改造,在文件输出的时候遇到了一个正负片转换问题,研究了半天一直没有得到解决, 回来后前前后后整理今天参数输出与输出的关系,最终还梳理清楚了, 今天小结:一项技术只要用心去研究 ...

  2. Gym - 101981A The 2018 ICPC Asia Nanjing Regional Contest A.Adrien and Austin 简单博弈

    题面 题意:一堆有n个石子,编号从1⋯N排成一列,两个人Adrien 和Austin玩游戏,每次可以取1⋯K个连续编号的石子,Adrien先手,谁不能取了则输 题解:k==1时,显然和n奇偶相关,当k ...

  3. Visual Studio q启动卡顿

    在开发人员CMD下面执行 Devenv.exe /ResetSettings ,然后顺利打开 总发现vs2015经常把cpu给占满了,导致电脑卡的不要不要的.这是CodeLens引起的,因为装了VAs ...

  4. Nginx作为负载均衡服务

    负载均衡服务器配置: 注意:upstream和server同级 案例: 建立两个基于端口的虚拟主机来模拟两台web服务器. (1)新建一个www.123.com:81和www.123.com:82的虚 ...

  5. Python yield解析

    Pyhton generators and the yield keyword At a glance,the yield statement is used to define generators ...

  6. 易企CMS仿站标签说明

    头部标签: 每个页面都必须加的三大标签(将标签放入header.tpl里面,这样只需在每个模板中调用header.tpl即可): <title>{$seotitle}_{$sitename ...

  7. ListView中动态显示隐藏HeaderView和FooterView

    ListView中动态显示和隐藏Header&Footer 解决思路: 直接设置HeaderView和FooterView.setVisibility(View.GONE)无效, 布局仍然存在 ...

  8. 【Oracle】进入sqlplus 删除键backspace时出现^H

    当oracle进入sqlplus后,输入命令时候出现错误,我们按平时的习惯使用backspace键删除错误信息,此时会出现^H 解决办法:进入sqlplus之前,使用stty erase '^H'命令 ...

  9. JNDI连接池连接Oracle数据库

    今天做了一个评论的小功能,要求用JNDI连接池连接Oracle数据库,以前只是测试了是否连接的上,现在没想到一个JNDI连接池连接Oracle数据库,纠结了好久,原来都是Oracle数据库的问题,这是 ...

  10. windows server 2008如何显示后缀名

    任意打开一个文件----点击左上角有个[组织]---[文件夹和搜索选项]---[查看]----去掉勾[隐藏已知文件类型的扩展名]---确定即可