Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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/9/csharp-4.0/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#_.net_Linq_List - Fatal编程技术网

C# 从列表中选择多个列表

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

这是我的目标:获取一个通用的人员列表,并在我的模型中按男性、女性和儿童对其进行排序……为了这个网站和我的隐私,我还重命名了一些东西。。请关注下面的lambda表达式!谢谢大家!

我得到这个错误:

无法从
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()返回什么?