我有一个从通用列表派生的C#类
public class CostCodes : List<CostCode>
{
public CostCodes() : base()
{
Add(new CostCode { Description = "DOM0010 Fall Arr", ID = 1599 });
Add(new CostCode { Description = "DOM0020 Acoustics", ID = 1600 });
}
当我尝试在此派生类上使用Find方法时,intellisense中不会出现find方法。
var codes = new CostCodes();
CostCode costCode = codes.Find(...
想出问题是由测试silverlight项目中的类引起的。把它们移出去了,但知道为什么会有所作为会很好。
- 更新 -
还不能回答我自己的问题,但对于那些感兴趣的人,这篇文章说明了为什么
http://forums.silverlight.net/t/67428.aspx/1
显然在silverlight项目中没有Find方法。您必须使用linq和“first”方法而不是find
using System.Linq;
var costCode = codes.First(cc => cc.ID == id);
答案 0 :(得分:4)
这是intellisense的问题吗?
编译好:
public class CostCode {
public string Description { get; set; }
}
public class CostCodes : List<CostCode> {
public CostCodes()
: base() {
Add(new CostCode {Description = "DOM0010 Fall Arr"});
Add(new CostCode {Description = "DOM0020 Acoustics"});
}
}
// In another class...
public static void Main(string[] argStrings) {
CostCodes s = new CostCodes();
var hasDescription = s.Find(cc => cc.Description != null);
}
答案 1 :(得分:0)
Find()
方法应出现在intellisense中。
我只能假设您的行var codes = new CostCodes();
可能在不同的命名空间中引用名为CostCodes
的类型。
试试这个:
var codes = new Full.Namespace.CostCodes();