这是我的代码:
var myList = myPage.News.Cast<MyNew>();
MyNew 有 20 个属性(名称、标题、日期、地点等),但它错过了一个属性(例如)Tel
。
无法重新创建我的整个结构(它也来自 DLL),所以我想更快地Tel
在该列表中添加一个名为 的 MyNew 属性。因此,在插入列表期间扩展类。
这是我的代码:
var myList = myPage.News.Cast<MyNew>();
MyNew 有 20 个属性(名称、标题、日期、地点等),但它错过了一个属性(例如)Tel
。
无法重新创建我的整个结构(它也来自 DLL),所以我想更快地Tel
在该列表中添加一个名为 的 MyNew 属性。因此,在插入列表期间扩展类。
不,但您可以创建一个匿名类型,其中包括原始类型和新列:
var myList = myPage.News
.Cast<MyNew>()
.Select( new { m => MyNew = m,
Tel = [formula for tel]
}
);
public class MyNewExtended: MyNew {
public String Tel { get;set; }
}
var myList = myPage.News.Cast<MyNewExtended>();
(但请参阅下面 Chris Sinclair 的评论)
您应该能够MyNew
像这样使用部分类进行扩展:
public partial class MyNew
{
public int Tel { get; set; }
}
Tel
然后将像任何其他属性一样可用。