我有一个这样的对象:
public class SavedFileInfo
{
public String Address;
public Int32 DataPort;
public Int32 AudioPort;
public String Description;
public String Filename;
}
我有一个像这样的对象数组...... SavedFileInfo[] mySFI;
我现在如何从string[] filenames
个对象的集合中获取Filename字段的数组(例如SavedFileInfo
)?
答案 0 :(得分:5)
就个人而言,我会使用LINQ:
var files = mySFI.Select(x => x.Filename)
.ToArray();
或者,有Array.ConvertAll
:
var files = Array.ConvertAll(mySFI, x => x.Filename);
顺便说一句,我会强烈建议您使用属性而不是字段。更改代码以使用自动实现的属性非常容易:
public class SavedFileInfo
{
public String Address { get; set; }
public Int32 DataPort { get; set; }
public Int32 AudioPort { get; set; }
public String Description { get; set; }
public String Filename { get; set; }
}
答案 1 :(得分:1)
String[] fileNames = new string[mySFI.Length];
for (int i = 0; i < mySFI.Length; i++)
fileNames[i] = mySFI[i].Filename;
我可能会在这里遗漏一些东西,但是如果你的意思是“如何”去做,而不是“最简单的方法”(为此 - 请参阅Skeet的答案)然后知道如何去做很重要也以非linq的方式。如果我误解了你 - 我道歉。
答案 2 :(得分:0)
SavedFileInfo[] mySFI;
var fileNameArr = mySFI.Select(p=>p.Filename).ToArray();