我有一个列表存储在resultlist如下:
var resultlist = results.ToList();
它看起来是这样的:
ID FirstName LastName
-- --------- --------
1 Bill Smith
2 John Wilson
3 Doug Berg
我如何从列表中删除ID 2 ?
我有一个列表存储在resultlist如下:
var resultlist = results.ToList();
它看起来是这样的:
ID FirstName LastName
-- --------- --------
1 Bill Smith
2 John Wilson
3 Doug Berg
我如何从列表中删除ID 2 ?
当前回答
试试下面的代码:
resultlist.Remove(resultlist.Find(x => x.ID == 2));
其他回答
... 或者只是resultlist.RemoveAt(1)如果你知道确切的索引。
你没有指定哪种类型的列表,但是通用列表可以使用RemoveAt(index)方法,也可以使用Remove(obj)方法:
// Remove(obj)
var item = resultList.Single(x => x.Id == 2);
resultList.Remove(item);
// RemoveAt(index)
resultList.RemoveAt(1);
{
class Program
{
public static List<Product> list;
static void Main(string[] args)
{
list = new List<Product>() { new Product() { ProductId=1, Name="Nike 12N0",Brand="Nike",Price=12000,Quantity=50},
new Product() { ProductId =2, Name = "Puma 560K", Brand = "Puma", Price = 120000, Quantity = 55 },
new Product() { ProductId=3, Name="WoodLand V2",Brand="WoodLand",Price=21020,Quantity=25},
new Product() { ProductId=4, Name="Adidas S52",Brand="Adidas",Price=20000,Quantity=35},
new Product() { ProductId=5, Name="Rebook SPEED2O",Brand="Rebook",Price=1200,Quantity=15}};
Console.WriteLine("Enter ProductID to remove");
int uno = Convert.ToInt32(Console.ReadLine());
var itemToRemove = list.Find(r => r.ProductId == uno);
if (itemToRemove != null)
list.Remove(itemToRemove);
Console.WriteLine($"{itemToRemove.ProductId}{itemToRemove.Name}{itemToRemove.Brand}{itemToRemove.Price}{ itemToRemove.Quantity}");
Console.WriteLine("------------sucessfully Removed---------------");
var query2 = from x in list select x;
foreach (var item in query2)
{
/*Console.WriteLine(item.ProductId+" "+item.Name+" "+item.Brand+" "+item.Price+" "+item.Quantity );*/
Console.WriteLine($"{item.ProductId}{item.Name}{item.Brand}{item.Price}{ item.Quantity}");
}
}
}
}
List<T>有两个方法可以使用。
如果知道项的索引,可以使用RemoveAt(int index)。例如:
resultlist.RemoveAt(1);
或者你可以使用Remove(T项):
var itemToRemove = resultlist.Single(r => r.Id == 2);
resultList.Remove(itemToRemove);
当你不确定项目是否存在时,你可以使用SingleOrDefault。如果没有项目,SingleOrDefault将返回null(当Single找不到项目时将抛出异常)。当存在重复值(两个具有相同id的项)时,两者都会抛出。
var itemToRemove = resultlist.SingleOrDefault(r => r.Id == 2);
if (itemToRemove != null)
resultList.Remove(itemToRemove);
更多的简化:
resultList.Remove(resultList.Single(x => x.Id == 2));
不需要创建一个新的var对象。