MyClass.cs
public class MyClass
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string path;
public string Path
{
get { return path; }
set { path= value; }
}
}
当我返回一个MyClass类型的List时,我想拥有,只有NAME属性..不是整个对象..我怎么能做到这一点? 类似的东西:
List<MyClass> myClasses = new List<MyClass>();
return myClasses["Name"]; //<--- Only the Name
答案 0 :(得分:7)
您可以使用Linq仅返回名称,但现在您将拥有List<string>
:
return myClasses.Select(x => x.Name).ToList();
或者,您可以从原始列表中创建MyClass
的新列表,并仅填充名称attibute:
return myClasses.Select(x => new MyClass {Name = x.Name}).ToList();
答案 1 :(得分:0)
如果您只想要一个名单列表,那么其他人提到的.Select(x => x.Name)
是最好的。
但是,如果要返回仅具有Name属性的对象,则可以使用接口。
public interface IName
{
string Name { get; set; }
}
然后让MyClass实现接口
public class MyClass: IName
{
//...snip
}
然后您可以返回界面列表
return myClasses.Cast<IName>();
答案 2 :(得分:0)
public class myList : List<MyClass>
{
public MyClass this[string SearchedName]
{
get
{
return this.SingleOrDefault(mc => mc.Name == SearchedName);
}
}
}