前几天,看同事写的代码中有list相关的字眼,百度了一下,原来是C#中list泛型集合。
了解一下。
List:泛型集合,List
泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。
使用命名空间:
using System.Collections.Generic;
list一些方法和属性:
1. Capacity 用于获取或设置List可容纳元素的数量。当数量超过容量时,这个值会自动增长。您可以设置这个值以减少容量,也可以调用trin()方法来减少容量以适合实际的元素数目。
2. Count 属性,用于获取数组中当前元素数量
3. Item( ) 通过指定索引获取或设置元素。对于List类来说,它是一个索引器。
4. Add( ) 在List中添加一个对象的公有方法
5. AddRange( ) 公有方法,在List尾部添加实现了ICollection接口的多个元素
6. BinarySearch( ) 重载的公有方法,用于在排序的List内使用二分查找来定位指定元素.
7. Clear( ) 在List内移除所有元素
8. Contains( ) 测试一个元素是否在List内
9. CopyTo( ) 重载的公有方法,把一个List拷贝到一维数组内
10. Exists( ) 测试一个元素是否在List内
11. Find( ) 查找并返回List内的出现的第一个匹配元素
12. FindAll( ) 查找并返回List内的所有匹配元素
13. GetEnumerator( ) 重载的公有方法,返回一个用于迭代List的枚举器
14. Getrange( ) 拷贝指定范围的元素到新的List内
15. IndexOf( ) 重载的公有方法,查找并返回每一个匹配元素的索引
16. Insert( ) 在List内插入一个元素
17. InsertRange( ) 在List内插入一组元素
18. LastIndexOf( ) 重载的公有方法,,查找并返回最后一个匹配元素的索引
19. Remove( ) 移除与指定元素匹配的第一个元素
20. RemoveAt( ) 移除指定索引的元素
21. RemoveRange( ) 移除指定范围的元素
22. Reverse( ) 反转List内元素的顺序
23. Sort( ) 对List内的元素进行排序
24. ToArray( ) 把List内的元素拷贝到一个新的数组内
25. trimToSize( ) 将容量设置为List中元素的实际数目
1:声明list
①、List
T为列表中元素类型,现在以string类型作为例子
List<string> mList = new List<string>();
②、List
以一个集合作为参数创建List:
string[] arr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" };
List<string> mList = new List<string>(arr);
2:添加元素 Add
添加一个元素
语法: List. Add(T item)
mList.Add("cmailla");
foreach (string item in mList)
{
Console.WriteLine(item);
}
3:指定位置添加元素 Insert
语法: Insert(int index, T item);
mList.Insert(0,"qwert");
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
4:添加元素集合 AddRange
语法: List. AddRange(IEnumerable
string[] dfg = { "hiocvhi","jioosdfhio","erw"};
mList.AddRange(dfg);
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
5:删除指定元素
语法:List. Remove(T item)
mList.Remove("erw");
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
6:删除指定下标元素
语法:List. RemoveAt(int index);
mList.RemoveAt(3);
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
7:从下标index开始,删除count个元素
语法:List. RemoveRange(int index, int count);
mList.RemoveRange(3,5);
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
8:判断某个元素是否在该List中:
语法:List. Contains(T item) 返回值为:true/false
bool s = mList.Contains("Ha");
Console.WriteLine(s);
Console.WriteLine("
");
9:给List里面元素排序:
语法: List. Sort () 默认是元素第一个字母按升序
mList.Sort();
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
10:给List里面元素顺序反转:
语法: List. Reverse () 可以与List. Sort ()配合使用,达到想要的效果
mList.Reverse();
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
11:List清空:
语法:List. Clear ()
mList.Clear();
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
12:ist.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素
语法:public List
Predicate是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 true。当前 List 的元素被逐个传递给Predicate委托,并在 List 中向前移动,从第一个元素开始,到最后一个元素结束。当找到匹配项时处理即停止。
Predicate 可以委托给一个函数或者一个拉姆达表达式:
正常委托:
List<string> subList = mList.FindAll(ListFind); //委托给ListFind函数
//ListFind函数
public static bool ListFind(string name)
{
Console.WriteLine(name);
if (name.Length > 3)
{
return true;
}
return false;
}
匿名委托:
List<string> subList = mList.FindAll( delegate(string name) {
Console.WriteLine(name);
if (name.Length > 3)
{
return true;
}
return false;
});
Lambda表达式:
List subList = mList.FindAll(name => {
Console.WriteLine(name);
if (name.Length > 3)
{
return true;
}
return false;
});
13:List.Find 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的第一个匹配元素。
语法:public T Find(Predicate
string listFind1 = mList.Find(ListFind); //委托给ListFind函数
Console.WriteLine(listFind1);
14:List.FindLast 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的最后一个匹配元素。
语法:public T FindLast(Predicate
string listFind2 = mList.FindLast(ListFind); //委托给ListFind函数
Console.WriteLine(listFind2);
15:List.TrueForAll方法:确定是否 List 中的每个元素都与指定的谓词所定义的条件相匹配。
语法:public bool TrueForAll(Predicate
bool flag = mList.TrueForAll(delegate(string name)
{
Console.WriteLine(name);
if (name.Length > 3)
{
return true;
}
return false;
});
16:List.Take(n)方法: 获得前n行 返回值为IEnumetable
IEnumerable<string> mmmlist = mList.Take(3);
foreach (string item in mmmlist)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
17:List.Where方法:检索与指定谓词所定义的条件相匹配的所有元素。跟List.FindAll方法类似。
使用该方法定义存储集合的元素开头是:IEnumerable
IEnumerable<string> whereList = mList.Where(ListFind);
foreach (var item in whereList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
18:List.RemoveAll方法:移除与指定的谓词所定义的条件相匹配的所有元素。
语法: public int RemoveAll(Predicate
mList.RemoveAll(name => {
if (name.Length <= 6)
{
return true;
}
else {
return false;
}
});
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
测试使用全部代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace listys
{
class Program
{
static void Main(string[] args)
{
// 声明列表
// List mList = new List();
string[] arr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" };
List<string> mList = new List<string>(arr);
Console.WriteLine(mList.Count);
mList.Add("cmailla");
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
mList.Insert(0,"qwert");
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
string[] dfg = { "hiocvhi","jioosdfhio","erw"};
mList.AddRange(dfg);
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
mList.Remove("erw");
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
mList.RemoveAt(3);
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
mList.RemoveRange(3,5);
foreach (string item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
bool s = mList.Contains("Ha");
Console.WriteLine(s);
Console.WriteLine("
");
mList.Sort();
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
mList.Reverse();
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
/*mList.Clear();
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");//*/
// 正常委托
// List subList = mList.FindAll(ListFind); //委托给ListFind函数
// 匿名委托
/*List subList = mList.FindAll( delegate(string name) {
Console.WriteLine(name);
if (name.Length > 3)
{
return true;
}
return false;
});//*/
List<string> subList = mList.FindAll(name => {
Console.WriteLine(name);
if (name.Length > 3)
{
return true;
}
return false;
});
foreach (string sss in subList)
{
Console.WriteLine("element in subList: " + sss);
}
string listFind1 = mList.Find(ListFind); //委托给ListFind函数
Console.WriteLine(listFind1);
string listFind2 = mList.FindLast(ListFind); //委托给ListFind函数
Console.WriteLine(listFind2);
bool flag = mList.TrueForAll(delegate(string name)
{
Console.WriteLine(name);
if (name.Length > 3)
{
return true;
}
return false;
});
Console.WriteLine(flag);
Console.WriteLine("
");
IEnumerable<string> mmmlist = mList.Take(3);
foreach (string item in mmmlist)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
IEnumerable<string> whereList = mList.Where(ListFind);
foreach (var item in whereList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
mList.RemoveAll(name => {
if (name.Length <= 6)
{
return true;
}
else {
return false;
}
});
foreach (var item in mList)
{
Console.WriteLine(item);
}
Console.WriteLine("
");
Console.ReadLine();
}
//ListFind函数
public static bool ListFind(string name)
{
if (name.Length > 3)
{
return true;
}
return false;
}
}
}
有好的建议,请在下方输入你的评论。