首页 > 解决方案 > 我创建了一个包含列表的表单,我正在尝试以新表单访问该列表

问题描述

我正在处理一项任务,我需要让用户输入比赛中竞争对手的姓名和时间。一旦他们输入表格,他们就可以进入“查看”屏幕(这是我的新表格),这将允许他们查看时间。

每个种族有 6 个类别,所以我在主窗体中创建了 6 个列表(带有输入)。这些列表是基于名为 Comppetitor 的对象创建的(需要名称和时间)

现在我需要获取该列表,并在“查看”屏幕中对其进行排序。我遇到了麻烦(我对 C# 非常缺乏经验)

我尝试引用输入表单,但无济于事。我知道我做错了什么,但我不知道它是什么。

public List<RaceCompute.Competitor> egg_adult_list = new List<RaceCompute.Competitor>();
public List<RaceCompute.Competitor> egg_teen_list = new List<RaceCompute.Competitor>();
public List<RaceCompute.Competitor> egg_kids_list = new List<RaceCompute.Competitor>();
public List<RaceCompute.Competitor> sack_adult_list = new List<RaceCompute.Competitor>();
public List<RaceCompute.Competitor> sack_teen_list = new List<RaceCompute.Competitor>();
public List<RaceCompute.Competitor> sack_kids_list = new List<RaceCompute.Competitor>();

public input_form()
{
    InitializeComponent();
}

public class RaceCompute
{
    public class Competitor
    {
        public string Name { get; set; }
        public double Time { get; set; }

        public Competitor(string name, double time)
        {
            Name = name;
            Time = time;
        }
    }
}


// VIEW FORM //
input_form test2 = new input_form();

编辑:非常感谢您的快速回复。我将列表设置为公共静态,我现在可以访问这些列表。同样,我非常缺乏经验,但感谢您的帮助

标签: c#

解决方案


代码最后看起来并不漂亮,但是您可以使用 Where 或 FirstOrDefault 对列表进行排序。

egg_kids_list.FirstOrDefault(i=> i.Name = NameToSearchFor);

对您的所有列表执行 6 次此操作,然后将所有结果竞争者对象添加到另一个列表中,并将其作为参数传递给您的新表单。

DisplayList.Add(egg_kids_list_item_returned_by_filter);

或者更好的选择可能是将您的第一个表单作为参数传递给您的第二个表单

private class display_class
{
public display_class(data_class data)
{
     //Here you can already access your lists
     public List<RaceCompute.Competitor> egg_adult_list = data.egg_adult_list;
}
}

推荐阅读