Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在主方法之外的列表中填写项目?_C# - Fatal编程技术网

C# 如何在主方法之外的列表中填写项目?

C# 如何在主方法之外的列表中填写项目?,c#,C#,当我从类FamilyList填充列表时,我得到了一个错误,但:若我从Main方法填充列表,那个么程序运行良好 using System; using System.Collections.Generic; namespace ListClassInstance74 { class Program { static void Main(string[] args) { List<Family> fami = ne

当我从类FamilyList填充列表时,我得到了一个错误,但:若我从Main方法填充列表,那个么程序运行良好

using System;
using System.Collections.Generic;

namespace ListClassInstance74
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Family> fami = new List<Family>();

        //populate list
        fami.Add(new Family() { name = "Ganpati Prasad", sex = "M", age = 52, occupation = "Under Manager" });
        fami.Add(new Family() { name = "Manju Devi", sex = "F", age = 49, occupation = "Housewife" });
        fami.Add(new Family() { name = "Anil Kumar", sex = "M", age = 27, occupation = "Entrepreneur" });
        fami.Add(new Family() { name = "Sunil Kumar", sex = "M", age = 25, occupation = "Project Executive" });

        //retrieve from list
        Family.DisplaySameSex(fami);
    }
}

public class Family 
{
    public string name { set; get; }
    public string sex { set; get; }
    public int age { set; get; }
    public string occupation { set; get; }

    public static void DisplaySameSex(List<Family> sSex)
    {
        foreach(Family f in sSex)
        {
            if (f.sex == "F")
                Console.WriteLine("Female: " + f.name + "  " + f.sex + "  " + f.age + "  " + f.occupation);

            if (f.age < 30)
                Console.WriteLine("Child: " + f.name + "  " + f.sex + "  " + f.age + "  " + f.occupation);
        }
    }
}

class FamilyList 
{
    //Family slim = new Family();
    ////declare list
    //List<Family> fami = new List<Family>();

    ////populate list
    //fami.Add(new Family(){name = "Ganpati Prasad", snnnsex = "M", slim.age = 52, slim.occupation = "Under Manager"});
}
}
使用系统;
使用System.Collections.Generic;
命名空间ListClassInstance74
{
班级计划
{
静态void Main(字符串[]参数)
{
List fami=新列表();
//填充列表
fami.Add(新家庭(){name=“Ganpati Prasad”,sex=“M”,年龄=52,职业=“在经理之下”});
添加(新家庭(){name=“Manju Devi”,sex=“F”,年龄=49,职业=“家庭主妇”});
fami.Add(新家庭(){name=“Anil Kumar”,sex=“M”,年龄=27,职业=“企业家”});
fami.Add(新家庭(){name=“Sunil Kumar”,sex=“M”,年龄=25,职业=“项目主管”});
//从列表中检索
Family.DisplaySameSex(fami);
}
}
公营家庭
{
公共字符串名称{set;get;}
公共字符串sex{set;get;}
公共整数{set;get;}
公共字符串占用{set;get;}
公共静态无效显示SAMESEX(列表sSex)
{
foreach(sSex中的f族)
{
如果(性别=“f”)
Console.WriteLine(“女性:+f.name+”+f.sex+“+f.age+”+f.职业);
如果(f.年龄<30岁)
Console.WriteLine(“孩子:+f.name+”“+f.sex+”“+f.age+”“+f.accountry”);
}
}
}
类家族列表
{
//家族苗条=新家族();
////申报表
//List fami=新列表();
////填充列表
//fami.Add(newfamily(){name=“Ganpati Prasad”,snnnsex=“M”,slim.age=52,slim.occulation=“Under Manager”});
}
}

首先,您需要将代码放入构造函数中:

class FamilyList 
{
    List<Family> fami = new List<Family>();

    public FamilyList()
    {
        fami.Add(new Family(){name = "Ganpati Prasad", snnnsex = "M", slim.age = 52, slim.occupation = "Under Manager"});
    }
}
或使列表可访问:

class FamilyList 
{
    public List<Family> Families {get; private set;}

    public FamilyList()
    {
        this.Families = new List<Family>();
        this.Families.Add(new Family(){name = "Ganpati Prasad", snnnsex = "M", slim.age = 52, slim.occupation = "Under Manager"});
    }
}
公共类程序
{
静态void Main(字符串[]参数)
{
List fami=Family.FamilyList();
//从列表中检索
Family.DisplaySameSex(fami);
}
}
公营家庭
{
公共字符串名称{set;get;}
公共字符串sex{set;get;}
公共整数{set;get;}
公共字符串占用{set;get;}
公共静态无效显示SAMESEX(列表sSex)
{
foreach(sSex中的f族)
{
如果(性别=“f”)
Console.WriteLine(“女性:+f.name+”+f.sex+“+f.age+”+f.职业);
如果(f.年龄<30岁)
Console.WriteLine(“孩子:+f.name+”“+f.sex+”“+f.age+”“+f.accountry”);
}
}
公共静态列表FamilyList()
{
List fami=新列表();
////填充列表
fami.Add(新家庭(){name=“Ganpati Prasad”,sex=“M”,年龄=52,职业=“在经理之下”});
回归家庭;
}
}
名称空间列表ClassInstance 2\u 74
{
班级计划
{
静态void Main(字符串[]参数)
{
//调用FamilyList创建列表
List fami=CreateList.FamilyList();
Family.DisplaySameSex(fami);
}
}
公营家庭
{
公共字符串名称{set;get;}
公共字符串sex{set;get;}
公共整数{set;get;}
公共字符串占用{set;get;}
//从列表中检索信息
公共静态无效显示SAMESEX(列表sSex)
{
foreach(sSex中的f族)
{
如果(性别=“f”)
Console.WriteLine(“女性:+f.name+”+f.sex+“+f.age+”+f.职业);
如果(f.年龄<30岁)
Console.WriteLine(“孩子:+f.name+”“+f.sex+”“+f.age+”“+f.accountry”);
}
}
}
公共类创建列表
{
公共静态列表FamilyList()
{
List fami=新列表();
//填充列表
fami.Add(新家庭(){name=“Ganpati Prasad”,sex=“M”,年龄=52,职业=“在经理之下”});
添加(新家庭(){name=“Manju Devi”,sex=“F”,年龄=49,职业=“家庭主妇”});
fami.Add(新家庭(){name=“Anil Kumar”,sex=“M”,年龄=27,职业=“企业家”});
fami.Add(新家庭(){name=“Sunil Kumar”,sex=“M”,年龄=25,职业=“项目主管”});
回归家庭;
}
}

}

u出现错误,因为您无法直接初始化您类中的对象。您可以在构造函数或methodIMO中进行初始化,继承
列表
,因为封装列表不是最好的方法。但您并没有扩展
列表
。您只是在创建一个特定于类型的列表。@YuvalItzchakov:我也添加了一个成员实现。@PatrickHofman:我在返回列表实例的方法中的另一个类中填充了该列表
class FamilyList 
{
    public List<Family> Families {get; private set;}

    public FamilyList()
    {
        this.Families = new List<Family>();
        this.Families.Add(new Family(){name = "Ganpati Prasad", snnnsex = "M", slim.age = 52, slim.occupation = "Under Manager"});
    }
}
static void Main(string[] args)
{
    FamilyList list = new FamilyList();

    Family.DisplaySameSex(list);

    // Or this when using the property `Families`:
    //Family.DisplaySameSex(list.Families);
}
public class Program
{
    static void Main(string[] args)
    {
        List<Family> fami = Family.FamilyList();
        //retrieve from list
        Family.DisplaySameSex(fami);
    }
}



public class Family
{
    public string name { set; get; }
    public string sex { set; get; }
    public int age { set; get; }
    public string occupation { set; get; }

    public static void DisplaySameSex(List<Family> sSex)
    {
        foreach (Family f in sSex)
        {
            if (f.sex == "F")
                Console.WriteLine("Female: " + f.name + "  " + f.sex + "  " + f.age + "  " + f.occupation);

            if (f.age < 30)
                Console.WriteLine("Child: " + f.name + "  " + f.sex + "  " + f.age + "  " + f.occupation);
        }
    }
    public static List<Family> FamilyList()
    {
        List<Family> fami = new List<Family>();

        ////populate list
        fami.Add(new Family(){name = "Ganpati Prasad", sex = "M",age = 52, occupation = "Under Manager"});

        return fami;
    }
}
namespace ListClassInstance2_74
{
    class Program
    {
        static void Main(string[] args)
        {
            //call FamilyList to create List
             List<Family> fami = CreateList.FamilyList();
            Family.DisplaySameSex(fami);
        }
    }

public class Family
{
    public string name { set; get; }
    public string sex { set; get; }
    public int age { set; get; }
    public string occupation { set; get; }

    //retrieve info from list
    public static void DisplaySameSex(List<Family> sSex)
    {
        foreach (Family f in sSex)
        {
            if (f.sex == "F")
                Console.WriteLine("Female: " + f.name + "  " + f.sex + "  " + f.age + "  " + f.occupation);

            if (f.age < 30)
                Console.WriteLine("Child: " + f.name + "  " + f.sex + "  " + f.age + "  " + f.occupation);
        }
    }
}

public class CreateList
{
    public static List<Family> FamilyList()
    {
        List<Family> fami = new List<Family>();

        //populate list
        fami.Add(new Family() { name = "Ganpati Prasad", sex = "M", age = 52, occupation = "Under Manager" });
        fami.Add(new Family() { name = "Manju Devi", sex = "F", age = 49, occupation = "Housewife" });
        fami.Add(new Family() { name = "Anil Kumar", sex = "M", age = 27, occupation = "Entrepreneur" });
        fami.Add(new Family() { name = "Sunil Kumar", sex = "M", age = 25, occupation = "Project Executive" });

        return fami;
    }
}