首页 > 解决方案 > 如何在 C# 中使用 linq 动态添加列表中的多个项目

问题描述

我正在尝试使用 c# 中的控制台应用程序在列表中添加多个项目,但我的列表中添加了重复的项目。

谁能帮我解决这个问题?

这是我的一段代码。

public class Billionaire
{
    public String Name { get; set; }
    public String Country { get; set;}
    public int Income { get; set; }
}  

public static Billionaire billObj = new Billionaire();
public static List<Billionaire> Billionaires = new List<Billionaire>();

public static Billionaire billObj = new Billionaire();
public static List<Billionaire> Billionaires = new List<Billionaire>();

标签: c#listlinq

解决方案


billObj每次调用该方法时,您都在处理相同的实例addNewBillionaire。List 将保留对同一副本的引用,该副本在您第二次调用该方法时会更新。

要解决它,您需要在您的方法中重新初始化 billObj(如评论中给出的)。

public static void addNewBillionaire() 
{ 
    billObj = new Billionaire();
    Console.WriteLine("Enter name:"); 
    billObj.Name = Console.ReadLine(); 
    Console.WriteLine("Enter the income:"); 
    billObj.Income = int.Parse(Console.ReadLine()); 
    Console.WriteLine("Enter country:"); 
    billObj.Country = Console.ReadLine(); 
    Billionaires.Add(billObj); 
} 

如果billObj不在其他地方使用,更好的方法是将 billObj 作为方法的局部变量


推荐阅读