C# 完整List例子

C# List

Following examples show how to create and manipulate with .NET strongly typed list List<T>.

List<T>

List is a generic type, so you can create list of any type (it can be reference type such asCustomer or value type such as int)

var list1 = new List<object>(); var list2 = new List<Customer>(); var list3 = new List<int>();

All the following examples use list of integer values List<int>.

List Constructor

Creates an empty list (of integer values).

var list = new List<int>();

list: (empty)

Creates a list and initializes it with some items (integer values).

var list = new List<int>() { 8, 3, 2 };

list: 8 3 2

Creates a list and initializes it with items of another list (or array or anything which implements IEnumerable interface).

var listA = new List<int>() { 8, 3, 2 };
var listB = new List<int>(listA);

listB: 8 3 2

Creates a list with specified capacity.

var list = new List<int>(16);

list.Count: 0
list.Capacity: 16

List[index]

Gets an item at the specified zero-based index.

list: 8 3 2

int item = list[1];

item: 3

Sets the item at the specified zero-based index.

list: 8 3 2

list[1] = 4;

list: 8 4 2

List.Add

Adds an item to the end of the list.

list: 8 3 2

list.Add(5);

list: 8 3 2 5

List.AddRange

Adds items of another list (or an IEnumerable collection) to the end of the list.

listA: 8 3 2
listB: 5 7

listA.AddRange(listB);

listA: 8 3 2 5 7

List.BinarySearch

Returns the zero-based index of the item in the sorted list. If the items is not found, returns a negative number. See MSDN for more info.

This List<T> method works only if the type T implements IComparable<T> or IComparable interface.

list: 1 3 4 6 7 9

int index = list.BinarySearch(6);

index: 3

This BinarySearch method overload uses specified comparer.

list: 1 3 4 6 7 9

int index = list.BinarySearch(item: 6,comparer: new MyComparer() );

index: 3

This BinarySearch method overload uses specified comparer and search in specified range.

list: 1 3 4 6 7 9

int index = list.BinarySearch(index: 1, count: 3, item: 6,comparer: new MyComparer() );

index: 3

This example shows the case when the item was not found in the list. The result is negative number.

list: 1 3 4 6 7 9

int index = list.BinarySearch(index: 1, count: 2, item: 6,comparer: new MyComparer() );

index: -4

public class MyComparer : IComparer<int>
{
public int Compare(int x, int y) { return x.CompareTo(y); }
}

List.Clear

Removes all items from the list. Count is zero, Capacity is unchanged.

list: 8 3 2

list.Clear();

list: (empty)

List.Contains

Returns true if the list contains the specified item.

list: 8 3 2

bool result = list.Contains(3);

result: true

Returns false if the list doesn‘t contain the specified item.

list: 8 3 2

bool result = list.Contains(6);

result: false

List.ConvertAll

Converts items using specified delegate. Items can be converted to another type.

listA: 8 3 2

var conv = new Converter<int,decimal>(x => (decimal)(x+1));

var listB = listA.ConvertAll<decimal>(conv);

listB: 9.0 4.0 3.0

List.CopyTo

Copies all list items into the beginning of the specified array.

list: 8 3 2
array: 0 0 0 0 0

list.CopyTo(array);

array: 8 3 2 0 0

Copies all list items into the array, starting from the specified array index.

list: 8 3 2
array: 0 0 0 0 0

list.CopyTo(array, arrayIndex: 2);

array: 0 0 8 3 2

Copies a range of list items into the array, starting from the specified array index.

list: 8 3 2
array: 0 0 0 0 0

list.CopyTo(index: 1, array: array,arrayIndex: 3, count: 1);

array: 0 0 0 3 0

List.Exists

Returns true if the list contains items matching the specified predicate.

list: 8 3 2

bool result = list.Exists(x => x == 3);

result: true

Returns false if the list doesn‘t contain items matching the specified predicate.

list: 8 3 2

bool result = list.Exists(x => x > 10);

result: false

List.Equals

Returns true if the two specified lists are reference equal (are the same instance).

var listA = new List<int>() { 8, 3, 2 };
var listB = listA;
bool result = listA.Equals(listB);

result: true

Returns false if the specified two lists are not the same instance. To determine whether all items of the two lists are equal use LINQ method SequenceEqual.

var listA = new List<int>() { 8, 3, 2 };
var listB = new List<int>() { 8, 3, 2 };
bool result = listA.Equals(listB);

result: false

List.Find

Returns the first occurrence of item matching the specified predicate.

list: 8 3 2

int item = list.Find(x => x > 2);

item: 3

For List<T> returns the default value of type T if no item matches the predicate. In this case the default value of int is 0.

list: 8 3 2

int item = list.Find(x => x > 10);

item: 0 (default value)

List.FindAll

Returns list with items matching the specified predicate.

listA: 8 3 2

var listB = listA.FindAll(x => x > 2);

listB: 8 3

Returns empty list, if no item matches the specified predicate.

listA: 8 3 2

var listB = listA.FindAll(x => x > 10);

listB: (empty)

List.FindIndex

Returns zero-based index of the first item which matches the specified predicate.

list: 8 3 6 4 2

int index = list.FindIndex(x => x < 5);

index: 1

Returns index of the first item which matches the specified predicate. It searches the list from startIndex to the end of the list.

list: 8 3 6 4 2

int index = list.FindIndex(startIndex: 2, match: x => x < 5);

index: 3

Returns index of the first item which matches the specified predicate. It searches the list in the range specified by startIndex and count.

list: 8 3 6 4 2

int index = list.FindIndex(startIndex: 2, count: 2,match: x => x < 5);

index: 3

Returns -1 if no item matches the specified predicate.

list: 8 3 6 4 2

int index = list.FindIndex(startIndex: 2, count: 2,match: x => x < 3);

index: -1

List.FindLast

Returns the last occurrence of item matching the specified predicate.

list: 8 3 2

int item = list.FindLast(x => x < 5);

item: 2

For List<T> returns the default value of type T if no item matches the predicate. In this case the default value of int is 0.

list: 8 3 2

int item = list.FindLast(x => x > 10);

item: 0 (default value)

List.FindLastIndex

Returns zero-based index of the last item which matches the specified predicate.

list: 2 4 6 3 8

int index = list.FindLastIndex(x => x < 5);

index: 3

Returns index of the last item which matches the specified predicate. It searches the list from the beginning to the specified startIndex.

list: 2 4 6 3 8

int index = list.FindLastIndex(startIndex: 2, match: x => x < 5);

index: 1

Returns index of the last item which matches the specified predicate in the range specified by count and the end index surprisingly called startIndex.

list: 2 4 6 3 8

int index = list.FindLastIndex(startIndex: 2, count: 2,match: x => x < 5);

index: 1

Returns -1 if no item matches the specified predicate.

list: 2 4 6 3 8

int index = list.FindLastIndex(startIndex: 2, count: 2,match: x => x < 3);

index: -1

List.ForEach

Executes the specified action for each item in the list. It does the same as standardC# foreach statement.

list: 8 3 2

list.ForEach(x => {Console.Write(x); });

output: 832

List.GetRange

Returns a list with a range of items of the source list.

listA: 8 3 6 4 2

var listB = listA.GetRange(index: 1, count: 3);

listB: 3 6 4

List.IndexOf

Returns the zero-based index of the first occurrence of the item in the list.

list: 8 3 2 6 8

int index = list.IndexOf(8);

index: 0

Returns the index of the first occurrence of the item in the list. It searches the list from the specified index to the end of the list.

list: 8 3 2 6 8

int index = list.IndexOf(item: 8,index: 1);

index: 4

Returns the index of the first occurrence of the item in the list. It searches the list in the range specified by index and count.

list: 8 3 2 6 8

int index = list.IndexOf(item: 3,index: 1, count: 2);

index: 1

Returns -1 if the item is not found in the specified range.

list: 8 3 2 6 8

int index = list.IndexOf(item: 8,index: 1, count: 2);

index: -1

List.Insert

Inserts an item into the list at the specified index.

list: 8 3 2

list.Insert(index: 1, item: 5);

list: 8 5 3 2

List.InsertRange

Inserts items of another list (or object implementing IEnumerable) into the list at the specified index.

listA: 8 3 2
listB: 5 7

listA.InsertRange(index: 1,collection: listB);

listA: 8 5 7 3 2

List.LastIndexOf

Returns the zero-based index of the last occurrence of the item in the list.

list: 8 3 2 6 8

int index = list.LastIndexOf(8);

index: 4

Returns the index of the last occurrence of the item in the list. It searches the list from the beginning of the list to the specified index.

list: 8 3 2 6 8

int index = list.LastIndexOf(item: 8, index: 3);

index: 0

Returns the index of the last occurrence of the item in the list. It searches in the range specified by count and the end index.

list: 8 3 2 6 8

int index = list.LastIndexOf(item: 6, index: 3, count: 2);

index: 3

Returns -1 if the item is not found in the specified range.

list: 8 3 2 6 8

int index = list.LastIndexOf(item: 8, index: 3, count: 2);

index: -1

List.Remove

Removes the first occurence of the specified item from the list.

list: 8 4 2 4

list.Remove(item: 4);

list: 8 2 4

List.RemoveAll

Removes all items matching the specified predicate.

list: 8 3 6 2

list.RemoveAll(x => x < 4);

list: 8 6

List.RemoveAt

Removes the item at the specified index.

list: 8 3 6 2

list.RemoveAt(index: 2);

list: 8 3 2

List.RemoveRange

Removes items from the specified range.

list: 8 3 6 2 4 5

list.RemoveRange(index: 2,count: 3);

list: 8 3 5

List.Reverse

Reverses the order of all items in the list.

list: 8 3 2

list.Reverse();

list: 2 3 8

Reverses the order of the items in the specified range.

list: 8 3 6 2

list.Reverse(index: 1, count: 2);

list: 8 6 3 2

List.Sort

Sorts all items in the list.

This List<T> method works only if the type T implements IComparable<T> or IComparable interface.

list: 8 3 6 2

list.Sort();

list: 2 3 6 8

Sorts list using comparison delegate.

list: 8 3 6 2

list.Sort((x, y) => x.CompareTo(y));

list: 2 3 6 8

Sorts list using comparison delegate (in descending order).

list: 8 3 6 2

list.Sort((x, y) => y.CompareTo(x));

list: 8 6 3 2

Sorts the list using custom comparer.

list: 8 3 6 2

list.Sort(new MyComparer());

list: 2 3 6 8

Sorts the specified range of the list using custom comparer.

list: 8 3 6 2 4 5

list.Sort(index: 2, count: 3,comparer: new MyComparer());

list: 8 3 2 4 6 5

public class MyComparer : IComparer<int>
{
public int Compare(int x, int y) { return x.CompareTo(y); }
}

List.ToArray

Creates new array and copies all items into it.

list: 8 3 2

int[] array = list.ToArray();

array: 8 3 2

Returns empty array for empty list.

list: (empty)

int[] array = list.ToArray();

array: (empty)

List.TrimExcess

Trims the list capacity to reduce memory usage if it‘s reasonable. It sets Capacity to the same value as Count but only if the Count is less than about 90 % of Capacity.

list: 1 2 3 4 5
list.Count: 5
list.Capacity: 8

list.TrimExcess();

list.Count: 5
list.Capacity: 5

If the Count is almost the same as the list Capacity it does nothing.

list: 1 2 3 4 5 6 7
list.Count: 7
list.Capacity: 8

list.TrimExcess();

list.Count: 7
list.Capacity: 8

List.TrueForAll

Returns true if all items in the list match the specified predicate.

list: 8 3 2

bool result = list.TrueForAll(x => x < 10);

result: true

Returns false if not all items in the list match the specified predicate.

list: 8 3 2

bool result = list.TrueForAll(x => x < 5);

result: false
时间: 2024-09-26 17:30:37

C# 完整List例子的相关文章

AngularJS入门2-一个完整的例子

1 <!-- angular JS 完整的例子 --> 2 <DOCTYPE html> 3 <html> 4 <head> 5 <meta charset="utf-8"/> 6 <title>一个完整例子实验</title> 7 <script src="jquery-1.10.2.min.js"></script> 8 <script src=&q

SuperSocket学习笔记(一)-一个完整的例子

一.什么是SuperSocket 以下是作者的介绍 执行以下命令,获取SuperSocket项目 $ git clone https://github.com/kerryjiang/SuperSocket 二.项目结构 三.开发过程 1.新建一个控制台项目ConsoleApp 1.1引用相关项目 1.2从Solution Items中引进日志文件 1.3设置SuperSocket.SocketBase45的log4net文件属性设置为[复制到本地] 2.编写Main方法 1 using Syst

WCF学习笔记(1)-一个完整的例子

一.开发环境 IDE:VS2013 OS:Win10 IIS:IIS 10 二.开发流程 1.项目结构 2.添加一个WCF程序 3.删除系统自动生成的两个文件IService1.cs和Service1.svc 4.添加自定义的WCF服务文件 5.在IUser.cs文件中,定义方法名 注: [ServiceContract]来说明是一个WCF接口,不加的话,不能被外部调用 [OperationContract]来说明该方法是一个WCF接口的方法,不加不能被外部调用 namespace WCFSer

Jquery ajax 完整实例子1

$ajax请求--------------------------------- var $personWifePs=$("#wife-money tbody tr"); var $personWife=$("#wife-money").find("input.write"); var $val=null; $.ajax({ type: "POST", url: "data/hm_monery_serceh.php&

CSS 一个完整的例子

My first web page What this is A simple page put together using HTML. I said a simple page put together using HTML. A simple page put together using HTML. A simple page put together using HTML. A simple page put together using HTML. A simple page put

Struts2 + uploadify 多文件上传完整的例子!

首先,我这里使用的是  Jquery  Uploadify3.2版本号  导入相关的CSS  JS    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/uploadify/uploadify.css"> <script src="<%=basePath%>js/jquery.min.js"></s

ibaits的一个简单的完整的例子

ibaits的简单介绍: iBatis 是apache 的一个开源项目,一个O/R Mapping(对象/关系映射) 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了. 搭建ibaits环境需要的一些资源jar包: ibatis-2.3.4.726.jar . mysql-connector-java-5.1.20-bin.jar 下面是配置相关文件: 1

poi单个导出Excel(klx的比较完整的例子)

//创建Excel @RequestMapping(value = { "listExportCal", "" }) public String listExport(FormBean formBean, HttpServletRequest request, HttpServletResponse response) throws IOException { Map<String, Object> searchParams = formBean.get

angularjs完整demo例子

AngularJS的主要特点是 mvc 数据双向绑定 分模块 依赖注入 mvc m: $Scope 变量 V:视图 c:controller=function(){} 控制器 方法 Angularjs的用法 1.在一个有起始标签的元素开始标签内使用 ng-app来指定angularjs的作用范围 2.angularJS的表达式是双大括号 {{}} 里面可以显示变量,数学运算,执行方法 3.ng-model=“变量名” 在输入框内可以绑定一个变量,此变量前端输入的值和js代码中的值是双向绑定的,一