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
,选择
,区分
等)可用,请确保在系统中包含使用
指令。如果需要扩展方法,请确保在系统中包含使用
指令(例如,其中
,选择
,不同的
等)可用。