C# 如何";查询「;列表<;T>;

C# 如何";查询「;列表<;T>;,c#,linq,list,C#,Linq,List,说我有 List<ExampleType> example; 现在,我如何浏览列表example,只查询名为Peter的ExampleType对象并将其存储在另一个列表中,如: List<ExampleType> peterExamples = example. //some query functionality that I can't find List peterExamples=示例//一些我找不到的查询功能 我尝试了示例.AsQueryable。但无法让

说我有

List<ExampleType> example;
现在,我如何浏览列表
example
,只查询名为Peter的
ExampleType
对象并将其存储在另一个列表中,如:

List<ExampleType> peterExamples = example. //some query functionality that I can't find
List peterExamples=示例//一些我找不到的查询功能

我尝试了
示例.AsQueryable
。但无法让它工作。我想我可能需要一些LINQ来查询列表?

您可以获得所有
ExampleType
元素,其中
name==“Peter”
如下所示:

class ExampleType 
{
    public string ID;
    public string name;
    //etc.


   //Some other members..
}
var peterExamples = example.Where(e => e.name == "Peter");
List<ExampleType> peterExamples = example.Where(t=>t.name == "Peter").ToList();
这将返回一个
IEnumerable
,如果需要
列表
,可以通过调用
ToList()
将其转换为一个列表


您可以使用
name==“Peter”
获得所有
ExampleType
元素,如下所示:

class ExampleType 
{
    public string ID;
    public string name;
    //etc.


   //Some other members..
}
var peterExamples = example.Where(e => e.name == "Peter");
List<ExampleType> peterExamples = example.Where(t=>t.name == "Peter").ToList();
这将返回一个
IEnumerable
,如果需要
列表
,可以通过调用
ToList()
将其转换为一个列表


您可以这样做:

class ExampleType 
{
    public string ID;
    public string name;
    //etc.


   //Some other members..
}
var peterExamples = example.Where(e => e.name == "Peter");
List<ExampleType> peterExamples = example.Where(t=>t.name == "Peter").ToList();
List peterExamples=example.Where(t=>t.name==“Peter”).ToList();
或者可以使用查询语法:

List<ExampleType> peterExamples = (
   from item in example
   where item.name == "peter"
   select item ).ToList();
List peterExamples=(
来自示例中的项
其中item.name==“peter”
选择项);

您可以这样做:

class ExampleType 
{
    public string ID;
    public string name;
    //etc.


   //Some other members..
}
var peterExamples = example.Where(e => e.name == "Peter");
List<ExampleType> peterExamples = example.Where(t=>t.name == "Peter").ToList();
List peterExamples=example.Where(t=>t.name==“Peter”).ToList();
或者可以使用查询语法:

List<ExampleType> peterExamples = (
   from item in example
   where item.name == "peter"
   select item ).ToList();
List peterExamples=(
来自示例中的项
其中item.name==“peter”
选择项);

这样就可以了

var peterList = example.Where(x => x.name == "Peter").ToList();
在这种情况下,列表仅为
ExampleType
,因此不需要仅查询
ExampleType
。如果您面临一个
列表
,并且只需要在
ExampleType
上运行它,那么您可以执行以下操作

var peterList = example
  .OfType<ExampleType>()
  .Where(x => x.name == "Peter")
  .ToList();
var peterList=示例
第()类
.其中(x=>x.name==“Peter”)
.ToList();

这样就可以了

var peterList = example.Where(x => x.name == "Peter").ToList();
在这种情况下,列表仅为
ExampleType
,因此不需要仅查询
ExampleType
。如果您面临一个
列表
,并且只需要在
ExampleType
上运行它,那么您可以执行以下操作

var peterList = example
  .OfType<ExampleType>()
  .Where(x => x.name == "Peter")
  .ToList();
var peterList=示例
第()类
.其中(x=>x.name==“Peter”)
.ToList();
可用于任何
IEnumerable
IQueryable
IEnumerable
的子类型),其中包括
列表

var peterList = peterExamples.ToList();
如果intellisense“不工作”,或存在错误,如“Where/AsQueryable未识别为..方法”,则代码需要导入扩展方法(例如),以便可用

有关更多用法和信息,请参阅。

可用于任何
IEnumerable
IQueryable
IEnumerable
的子类型),其中包括
列表

var peterList = peterExamples.ToList();
如果intellisense“不工作”,或存在错误,如“Where/AsQueryable未识别为..方法”,则代码需要导入扩展方法(例如),以便可用


有关更多用法和信息,请参阅。

您还必须具有此using语句,Linq查询才能工作

using System.Linq;

要使Linq查询工作,还必须有这个using语句

using System.Linq;

下面是一个使用
List
FindAll
方法的无LINQ解决方案:


var peterExamples=example.FindAll(item=>item.name==“Peter”)

以下是一个使用
List
FindAll
方法的无LINQ解决方案:


var peterExamples=example.FindAll(item=>item.name==“Peter”)

确保在
系统中包含
使用
指令。如果希望扩展方法(例如
Where
选择
区分
等)可用,请确保在
系统中包含
使用
指令。如果需要扩展方法,请确保在
系统中包含
使用
指令(例如,
其中
选择
不同的
等)可用。