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