在下面的代码中,我在名为 listOfNames
的列表上运行 RepeatedNames
方法,其中一些是重复的。因此,该方法应该将重复的名称存储在另一个列表(_repeatedNames
)中,并在控制台中打印出来。
但它没有运行。
顺便提一下:我是 C# 新手,并试图通过编码以实用的方式学习,所以肯定有一些明显的地方我做错了。
static void Main(string[] args)
{
List<string> listOfNames = new List<string>() { "Sam", "Mark", "Nick", "Laura", "Mark", "Helen", "Nick" };
RepeatedNames(listOfNames);
}
private List<string> _names = new List<string>();
private List<string> _repeatedNames = new List<string>();
static void RepeatedNames(List<string> NameCollection)
{
foreach (var name in NameCollection)
{
if (!_names.Contains(name))
{
_names.Add(name);
}
else
{
_repeatedNames.Add(name);
Console.Write(name + "\t");
}
}
最佳答案
我犯的一个明显错误是,在我的列表声明中没有使用静态一词。
每次 foreach
循环时,它都会处理列表中的每个项目,因此为了能够使用 Contains()
和 Add ()
方法在我的列表中(它们是非静态
),我应该创建它们的对象实例。如果不是,我应该将我的列表标记为静态
,以便在对它们调用这两个方法时不需要它们的实例。
因此问题中的代码缺少关键字static
,如下所示:
private static List<string> _names = new List<string>();
private static List<string> _repeatedNames = new List<string>();
关于c# - 在我的字符串列表上使用 Contains() 和 Add() 方法,但它不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68224258/