c# - 在我的字符串列表上使用 Contains() 和 Add() 方法,但它不运行

标签 c# static

在下面的代码中,我在名为 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/

相关文章:

c# - 我怎么知道一个类是否可以用作静态类?

java - 如何解决 "static method ___ should be accessed in a static way"警告

c# - 什么时候在 C# 中调用静态构造函数?

c# - 使用多个非嵌套文件在 Visual Studio 2012 中创建项目模板

java - TableView 静态时不显示列

c++ - 复杂类型数组的静态初始化

c# - 在 IExceptionFilter 中访问 ActionArguments

c# - 了解为什么 TPL 任务可以使用 OUT FromCurrentSynchronizationContext 更新 UI

c# - 难以将字符串解析为 DateTime

c# - Windows Phone 8 应用程序出现 "You need to install an app for this task"错误