List
List:也是Array,内存上都是连续摆放的;不定长;泛型,保证类型安全,避免装箱拆箱(都是统一的类型)
List<Student> resultList = (from c in lsStudent where c.Name.IndexOf(key)>=0 ||c.Sex.IndexOf(sex)>=0 select c).ToList();
知识讲解:
1,c.Name.IndexOf(key)>=0 ---意义等同于 like '%key%',从两端模糊匹配
2,c.Name.StartsWith(key) ---等同于like 'key%' ,从开头模糊匹配
3,c.Name.EndWith(key) ---等同于like '%key',从结尾模糊匹配
去除特定数据
第一种
for (int i = 0; i < studentList.Count - 1;i++)
{
if (studentList[i].Age==10)
{
studentList.Remove(studentList[i]);
}
}
第二种
studentList.RemoveAll((test) => test.Age == 10);//可以用此Linq表达式移除所有符合条件的列表元素
将List 类型转换成DataTable
public static DataTable ToDataTable(IList list)
{
public static DataTable ToDataTable(IList list)
{
DataTable result = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] properts = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in properts)
{
result.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in properts)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
}
return result;
}
if (list.Count > 0)
{
PropertyInfo[] properts = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in properts)
{
result.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in properts)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
}
return result;
}
Hashtable类
哈希表,名-值对。类似于字典(比数组更强大)。哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。GetHashCode()方法返回一个int型数据,使用这个键的值生成该int型数据。哈希表获取这个值最后返回一个索引,表示带有给定散列的数据项在字典中存储的位置。
Queue类
队列,先进先出。enqueue方法入队列,dequeue方法出队列。
Stack<T>
后进先出,Push插入顶部,Pop移除顶部
泛型集合类 访问方式 允许空 允许重复 其他说明
List<T> 索引 允许 允许 类似于自动扩充容量的数组,可通过索引插入,移除元素,可进行排序
LinkedList<T> 前、后节点 允许 允许 通过节点LinkedListNode来顺序访问上一个或下一个,元素进行排序无意义
HashSet<T> 具体值 允许 不允许 元素无特定顺序,元素是唯一,不重复的。Add一个元素如果已存在,将操作失败
Queue<T> 顶部 允许 允许 先进先出,Enqueue插入末尾,Dequeue移除顶部
Stack<T> 顶部 允许 允许 后进先出,Push插入顶部,Pop移除顶部
Dictionary<TKey,TValue> 键 不允许 键不允许重复,但值允许重复 键值对访问,通过键来读写,插入重复键将抛出异常
https://blog.csdn.net/ylq1045/article/details/122366380
Hi,
Tomorrow!