-1

我有以下代码用于在我的列表中添加值。

public class Temp  {
     public object Id { get; set; }
     public object Amount { get; set; }
     public object TrasactionDateTime { get; set; } 
    }  

private List<Temp> list = new List<Temp>();

添加

list.Add(new Temp{ Id = GetData["Id"], Amount = GetData["Amount"],      TrasactionDateTime = GetData["TransactionDateTime"] }); 

如何删除列表中的项目?

例子

list.Remove(Id = "1"); 
4

4 回答 4

3

您需要从列表中找到该项目,Id = "1"然后将其删除。

var item = list.FirstOrDefault(r=> r.Id.ToString() == "1");
if(item != null)
    list.Remove(item);

您还可以使用基于索引删除项目List<T>.RemoveAt()

于 2013-02-22T06:14:05.047 回答
1

尝试使用.Find

与指定谓词定义的条件匹配的第一个元素(如果找到);否则,类型 T 的默认值。

List<Temp> list = new List<Temp>();
var f = list.Find(c => c.Id == 1);
if (f == null) return;
var x = list.Remove(f);
于 2013-02-22T06:16:47.340 回答
1
list.RemoveAll(s => s.Id == "1");
于 2013-02-22T06:18:38.033 回答
1
list.RemoveAll (s => s.Id == "1"); // remove by condition

请注意,这将删除所有具有给定 ID 的临时工。

如果需要移除 id 找到的第一个 temp,首先使用 First 方法找到他,然后对实例调用 Remove:

var firstMatch = list.First (s => s.Id == "1");
list.Remove (firstMatch);

如果您想确保在删除他之前只有一个具有给定 id 的临时人员,请以类似的方式使用 Single:

var onlyMatch = list.Single (s => s.Id == "1");
list.Remove (onlyMatch);

请注意,如果没有一项与谓词完全匹配,则单次调用会失败。

于 2013-02-22T06:21:08.647 回答