F#在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
函数式 赛车模拟 (自由格式) 发布于:2021-02-02 10:52 转换OCaml对象模式 发布于:2021-02-01 00:46 [更多]
显示目录

可变列表



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

可变列表

List <T>类表示可以通过索引访问的对象的强类型列表。

它是List类的一个可变对象。 它类似于数组,因为它可以通过索引访问,但是,与数组不同,可以调整列表大小。 因此,您不需要在声明过程中指定大小。

创建一个可变列表

列表是使用new关键字并调用列表的构造函数创建。下面的例子说明了这一点 -

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

当你编译和执行程序,它产生以下输出

0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia

列表(T)类

列表(T)类表示可以通过索引访问的对象的强类型列表。它提供的方法来搜索,排序和操作的列表。

下表提供的属性,构造函数和列表(T)类的方法

属性

属性 描述
Capacity 获取或设置内部数据结构可以保持不调整元件的总数量。
Count 获取包含在列表(T)的元素的数量。
Item 获取或设置元素指定索引处。

构造函数

构造函数 描述
List(T)() 初始化列表(T)类为空并且具有默认初始容量的新实例。
List(T)(IEnumerable(T)) 初始化包含从指定集合复制的元素,并具有足够的容量来容纳复制的元素的数量的列表(T)的类的新实例。
List(T)(Int32) 初始化列表(T)类为空并且具有指定的初始容量的新实例。

方法

方法 描述
Add 将对象添加到列表(T)的结束。
AddRange 将指定集合中的元素的列表(T)的结束。
AsReadOnly 返回当前集合的只读IList的(T)包装。
BinarySearch(T) 对于搜索使用默认的比较的元素,整个排序列表(T),并返回该元素的从零开始的索引。
BinarySearch(T, IComparer(T)) 搜索使用指定的比较的元素,整个排序列表(T),并返回该元素的从零开始的索引。
BinarySearch(Int32, Int32, T, IComparer(T)) 搜索范围在使用指定的比较的元素排序列表(T)的元素,并返回该元素的从零开始的索引。
Clear 从列表中删除(T)的所有元素。
Contains 确定一个元素是否是列表(T)。
ConvertAll(TOutput) 在当前列表(T)为另一种类型的元素转换,并返回包含转换元素的列表。
CopyTo(T[]) 将整个列表(T)到兼容的一维数组,从目标数组的开头。
CopyTo(T[], Int32) 将整个列表(T)到兼容的一维数组,从目标数组的指定索引处。
CopyTo(Int32, T[], Int32, Int32) 复制一定范围内从List(T)的元素到兼容的一维数组,从目标数组的指定索引处的。
Equals(Object) 确定指定的对象是否等于当前对象。 (从Object继承。)
Exists 判定列表(T)是否包含匹配指定的谓词所定义的条件的元素。
Finalize 允许一个对象尝试释放资源并之前它是由垃圾收集(从Object继承)回收执行其他清理操作。
Find 搜索匹配由指定谓词所定义的条件,并返回整个列表(T)中第一次出现的元件。
FindAll 检索所有匹配指定的谓词所定义的条件的元素。
FindIndex(Predicate(T)) 搜索匹配由指定谓词定义的条件,并返回整个List(T)中第一次出现的从零开始的索引的元素。
FindIndex(Int32, Predicate(T)) 搜索匹配由指定谓词所定义的条件,并在列表(T)的元素的范围内返回第一个出现的从零开始的索引,从指定索引到最后一个元素延伸的元素。
FindIndex(Int32, Int32, Predicate(T)) 搜索匹配由指定谓词所定义的条件,并在列表(T)的元素范围内返回第一个出现的从零开始的索引启动指定索引处,并包含指定元素数量的元素。
FindLast 搜索匹配由指定谓词所定义的条件,并返回整个列表(T)内的最后出现的元件。
FindLastIndex(Predicate(T)) 搜索匹配由指定谓词定义的条件,并返回整个List(T)内的最后一个匹配的从零开始的索引的元素。
FindLastIndex(Int32, Predicate(T)) 搜索匹配由指定谓词所定义的条件,并在列表(T)的元素的范围内返回最后出现的从零开始的索引,从第一个元素到指定索引扩展的元素。
FindLastIndex(Int32, Int32, Predicate(T)) 搜索匹配由指定谓词所定义的条件,并在列表(T)的元素范围内返回最后出现的从零开始的索引,它包含的元素指定数量的指定索引结束的元素。
ForEach 执行列表(T)的每个元素上指定的操作。
GetEnumerator 返回的枚举列表(T)进行迭代。
GetHashCode 作为默认哈希函数。 (从Object继承。)
GetRange 创建一个范围在源列表(T)的元素的浅表副本。
GetType 获取当前实例的类型。 (从Object继承。)
IndexOf(T) 搜索指定的对象,并返回整个List(T)中第一次出现的从零开始的索引。
IndexOf(T, Int32) 搜索指定的对象,并返回从指定索引到最后一个元素扩展了名单(T)的元素范围内第一次出现的从零开始的索引。
IndexOf(T, Int32, Int32) 搜索指定的对象,并返回启动指定索引处和包含的元素指定数量的列表(T)的元素范围内第一次出现的从零开始的索引。
Insert 插入一个元素指定索引处的列表(T)。
InsertRange 插入集合的指定索引处的元素融入到列表(T)。
LastIndexOf(T) 搜索指定的对象,并返回整个List(T)内的最后一个匹配的从零开始的索引。
LastIndexOf(T, Int32) 搜索指定的对象,并返回,从第一个元素到指定索引扩展了名单(T)的元素范围内最后一次出现的从零开始的索引。
LastIndexOf(T, Int32, Int32) 搜索指定的对象,并返回一个包含元素的指定数量的指定索引处结束的名单(T)的元素范围内最后一次出现的从零开始的索引。
MemberwiseClone 创建当前Object的浅表副本。 (从Object继承。)
Remove 从列表中删除(T)特定对象的第一次出现。
RemoveAll 删除所有匹配指定的谓词所定义的条件的元素。
RemoveAt 删除列表(T)的指定索引处的元素。
RemoveRange 删除一个范围从List(T)的元素。
Reverse() 反转在整个列表(T)中的元素的顺序。
Reverse(Int32, Int32) 反转指定范围中的元素的顺序。
Sort() 在排序使用默认的比较整个List(T)的元素。
Sort(Comparison(T)) 用指定的系统,在整个列表(T)的元素。比较(T)。
Sort(IComparer(T)) 用指定的比较器在整个List(T)的元素。
Sort(Int32, Int32, IComparer(T)) 在排序范围列表中使用指定的比较单元(T)的元素。
ToArray 复制名单(T)的一个新的数组中的元素。
ToString 返回表示当前对象的字符串。 (从Object继承。)
TrimExcess 设置的能力的列表(T)的元件的实际数量,如果该数量小于一个阈值。
TrueForAll 确定列表(T)的每个元素是否在指定的谓词所定义的条件相匹配。

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.Insert(2, "Roots")

printfn("after inserting at index 2")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.RemoveAt(3)

printfn("after removing from index 3")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

当你编译和执行程序,它产生以下输出

Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
after inserting at index 2
Total 7 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Fountainhead
4: Thornbirds
5: Rebecca
6: Narnia
after removing from index 3
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Thornbirds
4: Rebecca
5: Narnia
由JSRUN为你提供的F#在线运行、在线编译工具
        JSRUN提供的F# 在线运行,F# 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout