LINQ查询方法参数

时间:2012-02-09 16:35:43

标签: c# linq c#-4.0

过去几周我一直在尝试利用Access数据库中包含的数据。我到了能够思考如何实现设计的地步。

如果我不是错误,则不能使用匿名类型作为方法的参数。这让我想知道在方法中返回LINQ查询结果的最佳方法是什么。如果您需要一些背景信息,那么所有问题都来自过去两周。

所以这让我感到疑惑:

写入查询时是否必须使用 var 语法?基于我在这里阅读的文章Here我理论上可以使用我自己的类或页面上列出的示例(string,int,ect)。

这引出了我的问题的第二部分: 如果我要说使用以下语法

IEnumerable<CustomClassHere> result = (from X in ....
where ....
**select** new CustomClassHere
{
Value = X.Field<int>("...")
}
);

我是否能够在返回IEnumerable的方法中返回结果?

如果我目前的问题不明确,我愿意提供更多详细信息,提供更详细的代码示例。如果您有任何涉及LINQ的设计建议,我将不胜感激。我希望使这个类及其与Access数据库的交互尽可能模块化。

2 个答案:

答案 0 :(得分:3)

样本类

public class abc
{
    internal string str;
    internal int i;
}

列表集

List<abc> List = new List<abc>();

abc Obj = new abc();
Obj.str = "1";
Obj.i = 1;
List.Add(Obj);

Obj = new abc();
Obj.str = "2";
Obj.i = 1;
List.Add(Obj);

Obj = new abc();
Obj.str = "3";
Obj.i = 1;
List.Add(Obj);

IEnumerable<abc> FinalList = (from lst in List select lst).ToList();

<强>结果集

enter image description here


示例参考

101 LINQ SAMPLES - Very helpful to make stronghold on LINQ to Objects

答案 1 :(得分:2)

是的,您可以返回IEnumerable<CustomClass>

第一部分,不是,您不必使用var,除非您选择匿名类(您在上面的示例中没有这样做)。