list.where的编译错误

时间:2012-11-15 02:01:01

标签: c# list generics where

我无法弄清楚为什么我一直收到这个错误。请帮忙!!!

'System.Collections.Generic.List'不包含'Where'的定义,也没有扩展方法'Where'可以找到接受类型'System.Collections.Generic.List'的第一个参数'(你错过了使用指令或汇编引用吗?)

using System.Collections.Generic;
using System.Collections;
    public class HistTradePlot : Indicator
    {
        private class Traid
            {
                public DateTime Date { get; set; }
                public int Index { get; set; }
                public int Buy { get; set; }
                public int Price {get;set;}
            }
        List<Traid> traids = new List<Traid>();

            if (Bars.FirstBarOfSession)
                {Bars.Session.GetNextBeginEnd(BarsArray[0], 0, 
out sessionBegin, out sessionEnd);
                    var sessionTrades = traids.Where(t => t.Date > sessionBegin && t.Date <= sessionEnd);
                Print("Session Start: " + sessionBegin + " Session End: " + sessionEnd);
                for (int i=0;i<sessionTrades.Length();i++){
                Print(Convert.ToString(sessionTrades[i].Date));
                }
                }

3 个答案:

答案 0 :(得分:4)

当您未包含Linq命名空间时,通常会发生这种情况,因此编译器无法找到像Where这样的Linq扩展方法。尝试添加:

using System.Linq;

答案 1 :(得分:3)

你需要

using System.Linq;

位于文件顶部。

答案 2 :(得分:3)

此外,LINQ在Frameworks 3.5及更高版本中。如果您使用的是3.5之前的.NET版本,则不支持LINQ。