C# IList<T>的用法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# IList<T>的用法?相关的知识,希望对你有一定的参考价值。
C#中的 IList<T> 的用法?
我要写一个方法
public static IList<T> getUserByT(T t,out int total)(T是User表的实体类)
从数据库中获取User表中的具体信息 返回IList<T>中,这个代码要怎么写?
ps--- 前提是不知道T实体类中的属性有几个--以后可能还要添加
问题是从数据库里查出来之后怎么往对象里面放
ps.list.add(对象)这个会
问题是不知道怎么往实体类对象里面放
(实体类中的属性是不固定的,不能 对象名.属性这样一个一个赋值)
比如说我从数据库查出来的数据是DataTable类型的数据集
怎么从DataTable里把数据取出来放进实体类的对象里
1、List<T> mList = new List<T>();
T为列表中元素类型,现在以string类型作为例子
E.g.:List<string> mList = new
List<string>();
2、List<T> testList =new List<T>
(IEnumerable<T> collection);
以一个集合作为参数创建List
E.g.:
string[] temArr = "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim",
"Kuku", "Locu" ;
List<string> testList = new
List<string>(temArr);
添加元素:
1、 List. Add(T item) 添加一个元素
E.g.:mList.Add("John");
2、 List. AddRange(IEnumerable<T> collection) 添加一组元素
E.g.:
string[] temArr = "Ha","Hunter", "Tom", "Lily", "Jay", "Jim",
"Kuku", "Locu" ;
mList.AddRange(temArr);
3、Insert(int index, T item); 在index位置添加一个元素
E.g.:mList.Insert(1, "Hei"); 参考技术A 写个事件,想什么时候加就什么时候加,具体添加方法是list.add() 参考技术B list.add(实体类的对象) 参考技术C 可以用LINQ 参考技术D IList 接口
表示可按照索引单独访问的对象的非泛型集合。
命名空间: System.Collections
程序集: mscorlib(在 mscorlib.dll 中)
备注
IList 是 ICollection 接口的子代,并且是所有非泛型列表的基接口。IList 实现有三种类别:只读、固定大小和可变大小。无法修改只读 IList。固定大小的 IList 不允许添加或移除元素,但允许修改现有元素。可变大小的 IList 允许添加、移除和修改元素。
有关此接口的泛型版本,请参见 System.Collections.Generic..::.IList<(Of <(T>)>) 。
示例
下面的示例演示创建一个简单列表——固定大小列表的 IList 接口的实现。
C#
using System;
using System.Collections;
class Example
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
SimpleList test = new SimpleList();
// Populate the List
outputBlock.Text += "Populate the List" + "\n";
test.Add("one");
test.Add("two");
test.Add("three");
test.Add("four");
test.Add("five");
test.Add("six");
test.Add("seven");
test.Add("eight");
test.PrintContents(outputBlock);
outputBlock.Text += "\n";
// Remove elements from the list
outputBlock.Text += "Remove elements from the list" + "\n";
test.Remove("six");
test.Remove("eight");
test.PrintContents(outputBlock);
outputBlock.Text += "\n";
// Add an element to the end of the list
outputBlock.Text += "Add an element to the end of the list" + "\n";
test.Add("nine");
test.PrintContents(outputBlock);
outputBlock.Text += "\n";
// Insert an element into the middle of the list
outputBlock.Text += "Insert an element into the middle of the list" + "\n";
test.Insert(4, "number");
test.PrintContents(outputBlock);
outputBlock.Text += "\n";
// Check for specific elements in the list
outputBlock.Text += "Check for specific elements in the list" + "\n";
outputBlock.Text += String.Format("List contains \"three\": 0", test.Contains("three")) + "\n";
outputBlock.Text += String.Format("List contains \"ten\": 0", test.Contains("ten")) + "\n";
// class Program
class SimpleList : IList
private object[] _contents = new object[8];
private int _count;
public SimpleList()
_count = 0;
// IList Members
public int Add(object value)
if (_count < _contents.Length)
_contents[_count] = value;
_count++;
return (_count - 1);
else
return -1;
public void Clear()
_count = 0;
public bool Contains(object value)
bool inList = false;
for (int i = 0; i < Count; i++)
if (_contents[i] == value)
inList = true;
break;
return inList;
public int IndexOf(object value)
int itemIndex = -1;
for (int i = 0; i < Count; i++)
if (_contents[i] == value)
itemIndex = i;
break;
return itemIndex;
public void Insert(int index, object value)
if ((_count + 1 <= _contents.Length) && (index < Count) && (index >= 0))
_count++;
for (int i = Count - 1; i > index; i--)
_contents[i] = _contents[i - 1];
_contents[index] = value;
public bool IsFixedSize
get
return true;
public bool IsReadOnly
get
return false;
public void Remove(object value)
RemoveAt(IndexOf(value));
public void RemoveAt(int index)
if ((index >= 0) && (index < Count))
for (int i = index; i < Count - 1; i++)
_contents[i] = _contents[i + 1];
_count--;
public object this[int index]
get
return _contents[index];
set
_contents[index] = value;
// ICollection Members
public void CopyTo(Array array, int index)
int j = index;
for (int i = 0; i < Count; i++)
array.SetValue(_contents[i], j);
j++;
public int Count
get
return _count;
public bool IsSynchronized
get
return false;
// Return the current instance since the underlying store is not
// publicly available.
public object SyncRoot
get
return this;
// IEnumerable Members
public IEnumerator GetEnumerator()
// Refer to the IEnumerator documentation for an example of
// implementing an enumerator.
throw new Exception("The method or operation is not implemented.");
public void PrintContents(System.Windows.Controls.TextBlock outputBlock)
outputBlock.Text += String.Format("List has a capacity of 0 and currently has 1 elements.", _contents.Length, _count) + "\n";
outputBlock.Text += "List contents:";
for (int i = 0; i < Count; i++)
outputBlock.Text += String.Format(" 0", _contents[i]);
outputBlock.Text += "\n";
// This code produces output similar to the following:
// Populate the List:
// List has a capacity of 8 and currently has 8 elements.
// List contents: one two three four five six seven eight
//
// Remove elements from the list:
// List has a capacity of 8 and currently has 6 elements.
// List contents: one two three four five seven
//
// Add an element to the end of the list:
// List has a capacity of 8 and currently has 7 elements.
// List contents: one two three four five seven nine
//
// Insert an element into the middle of the list:
// List has a capacity of 8 and currently has 8 elements.
// List contents: one two three four number five seven nine
//
// Check for specific elements in the list:
// List contains "three": True
// List contains "ten": False
语法
Visual Basic(声明)
<ComVisibleAttribute(True)> _
Public Interface IList _
Implements ICollection, IEnumerable
Visual Basic (用法)
Dim instance As IList
C#
[ComVisibleAttribute(true)]
public interface IList : ICollection, IEnumerable
以上是关于C# IList<T>的用法?的主要内容,如果未能解决你的问题,请参考以下文章