[英]C# List<MyClass> should return a Attribute from the MyClass
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类型的列表时,我只希望拥有NAME属性。而不是整个对象。如何实现呢? 就像是:
List<MyClass> myClasses = new List<MyClass>();
return myClasses["Name"]; //<--- Only the Name
您可以使用Linq仅返回名称,但是现在将具有List<string>
:
return myClasses.Select(x => x.Name).ToList();
或者,您可以从原始文件创建MyClass
的新列表,仅填充attibute名称:
return myClasses.Select(x => new MyClass {Name = x.Name}).ToList();
如果只需要一个名称列表,那么其他人提到的.Select(x => x.Name)
就是最好的。
但是,如果要返回仅具有Name属性的对象,则可以使用接口。
public interface IName
{
string Name { get; set; }
}
然后让MyClass实现接口
public class MyClass: IName
{
//...snip
}
然后您可以返回界面列表
return myClasses.Cast<IName>();
public class myList : List<MyClass>
{
public MyClass this[string SearchedName]
{
get
{
return this.SingleOrDefault(mc => mc.Name == SearchedName);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.