C# 从列表中选择多个列表
这是我的目标:获取一个通用的人员列表,并在我的模型中按男性、女性和儿童对其进行排序……为了这个网站和我的隐私,我还重命名了一些东西。。请关注下面的lambda表达式!谢谢大家! 我得到这个错误: 无法从C# 从列表中选择多个列表,c#,.net,linq,list,C#,.net,Linq,List,这是我的目标:获取一个通用的人员列表,并在我的模型中按男性、女性和儿童对其进行排序……为了这个网站和我的隐私,我还重命名了一些东西。。请关注下面的lambda表达式!谢谢大家! 我得到这个错误: 无法从System.Collections.Generic.IEnumerable转换为System.Collections.Generic.IEnumerable 人物模型: public List< People> Men { get; set; } public List< Pe
System.Collections.Generic.IEnumerable
转换为System.Collections.Generic.IEnumerable
人物模型:
public List< People> Men { get; set; }
public List< People> Women { get; set; }
public List< People> Kids { get; set; }
public List< People> Babies { get; set; }
public ListMen{get;set;}
公共列表Women{get;set;}
公共列表Kids{get;set;}
公共列表baby{get;set;}
控制器:
public ActionResult GetPeople(PeopleModels Peoples)
{
List<People> listPeoples = new List<People>();
listPeoples = DataClass.GetAllPeoples();
// this is the code I cannot get to work.
var men = listPeoples .Select(m => m.Sex == "M");
Peoples.Men = men.ToList<People>();
// Women, Children too..
return View("Employees", Peoples);
}
public ActionResult-GetPeople(PeopleModels-people)
{
List listPeoples=新列表();
listPeoples=DataClass.GetAllPeoples();
//这是我无法使用的代码。
var men=listPeople.Select(m=>m.Sex==“m”);
人民。男人=男人。托利斯();
//女人,孩子也是。。
返回视图(“员工”,人员);
}
您正在查找Where
语句
// Get People wher the Sex = "M"
Peoples.Men = listPeoples.Where(m => m.Sex == "M").ToList();
您正在查找
Where
语句
// Get People wher the Sex = "M"
Peoples.Men = listPeoples.Where(m => m.Sex == "M").ToList();
您当前仅选择
m.Sex
属性,并尝试将其列表分配给list
,这就是错误的原因。您可以简单地执行以下操作:
Peoples.Men = listPeoples.Where(m => m.Sex == "M").ToList();
另外,您不需要
Tolist()
,简单的Tolist()
就可以完成这项工作 您当前仅选择m.Sex
属性,并尝试将其列表分配给list
,这就是错误的原因。您可以简单地执行以下操作:
Peoples.Men = listPeoples.Where(m => m.Sex == "M").ToList();
另外,您不需要
Tolist()
,简单的Tolist()
就可以完成这项工作 您的男性集合包含布尔型项目
var men = listPeoples .Select(m => m.Sex == "M"); // returns a boolean collection satisfying the condition
Peoples.Men = listPeoples .Where(m => m.Sex == "M").ToList(); // This should be what you want
你也可以这样做
var men = listPeoples .Where(m => m.Sex == "M");
Peoples.Men = men.ToList();
您的men集合包含布尔类型的项
var men = listPeoples .Select(m => m.Sex == "M"); // returns a boolean collection satisfying the condition
Peoples.Men = listPeoples .Where(m => m.Sex == "M").ToList(); // This should be what you want
你也可以这样做
var men = listPeoples .Where(m => m.Sex == "M");
Peoples.Men = men.ToList();
您不了解Linq查询的基础知识。这个 “选择”语句必须用于项目结果。例如:
var a = new List<string>{"ab", "abc", "abcd"};
var b = a.Select(x=>x.Length).ToList();
另一种语法:
var c = (from element in a
where element.Length<4
select x=>Length).ToList();
var c=(来自a中的元素)
where element.LengthLength).ToList();
我们说从列表中的元素中,我们需要得到长度小于4个字符的元素,然后选择所有这些长度,将它们放到列表中并分配给c变量
建议您阅读更多关于该主题的内容,并检查示例,因为您不了解Linq查询的基础知识。这个 “选择”语句必须用于项目结果。例如:
var a = new List<string>{"ab", "abc", "abcd"};
var b = a.Select(x=>x.Length).ToList();
另一种语法:
var c = (from element in a
where element.Length<4
select x=>Length).ToList();
var c=(来自a中的元素)
where element.LengthLength).ToList();
我们说从列表中的元素中,我们需要得到长度小于4个字符的元素,然后选择所有这些长度,将它们放到列表中并分配给c变量
建议您阅读更多有关主题的信息,并与小组一起检查样本。您可以将每种类型放入各自的集合中:
var grouped = from person in people
group person by person.Type into g
select new {Key = g.Key, people = g};
唯一的问题是选择每个系列,这是迄今为止我得到的最好的:
List<Person> men = new List<Person>(), women = new List<Person>(), children = new List<Person>(), babies = new List<Person>();
foreach (var persons in grouped)
{
switch (persons.Key)
{
case PersonType.Male: men = persons.people.ToList(); break;
case PersonType.Female: women = persons.people.ToList(); break;
case PersonType.Child: children = persons.people.ToList(); break;
case PersonType.Baby: babies = persons.people.ToList(); break;
}
}
List男性=新列表(),女性=新列表(),儿童=新列表(),婴儿=新列表();
foreach(分组中的var人员)
{
开关(个人钥匙)
{
case PersonType.Male:men=persons.people.ToList();break;
case PersonType.femal:women=persons.people.ToList();break;
case PersonType.Child:children=persons.people.ToList();break;
case PersonType.Baby:babies=persons.people.ToList();break;
}
}
使用group,您可以将每种类型放入各自的集合中:
var grouped = from person in people
group person by person.Type into g
select new {Key = g.Key, people = g};
唯一的问题是选择每个系列,这是迄今为止我得到的最好的:
List<Person> men = new List<Person>(), women = new List<Person>(), children = new List<Person>(), babies = new List<Person>();
foreach (var persons in grouped)
{
switch (persons.Key)
{
case PersonType.Male: men = persons.people.ToList(); break;
case PersonType.Female: women = persons.people.ToList(); break;
case PersonType.Child: children = persons.people.ToList(); break;
case PersonType.Baby: babies = persons.people.ToList(); break;
}
}
List男性=新列表(),女性=新列表(),儿童=新列表(),婴儿=新列表();
foreach(分组中的var人员)
{
开关(个人钥匙)
{
case PersonType.Male:men=persons.people.ToList();break;
case PersonType.femal:women=persons.people.ToList();break;
case PersonType.Child:children=persons.people.ToList();break;
case PersonType.Baby:babies=persons.people.ToList();break;
}
}
Dataclass.GetAllPeoples()返回什么?Dataclass.GetAllPeoples()返回什么?