我有一种简单的方法可以将2个已知的配置文件放在我的profileArray列表中,如下所示:
Parameters params = new Parameters();
params.plist = new Plist();
params.plist.profileArray = new[]
{
new Profile{name = "john", age = 12, country = "USA"},
new Profile{name = "Brad", age = 20, country = "USA"}
};
现在我有了
List<Profiles> UserProfiles
里面有一堆个人资料。
如何将此列表添加到params.plist.profileArray?
感谢任何帮助。
感谢。
这就是UserProfile:
List<Profiles> UserProfiles
foreach(Profiles userProfile in UserProfiles)
{
string name = userProfile.Name;
string age = userProfile.Age;
string country = userProfile.Country;
string sex = userProfile.Sex;
string isMarried = userProfile.IsMarried;
}
答案 0 :(得分:3)
您可以使用Enumerable.ToArray
:
params.plist.profileArray = UserProfiles.ToArray();
如果要将列表添加到数组中,则无法修改数组,您必须创建一个新数组,例如使用Enumerable.Concat
:
var newProfile = params.plist.profileArray.Concat(UserProfiles);
params.plist.profileArray = newProfile.ToArray();
因为这是两个具有相似属性的不同类:
var profiles = UserProfiles
.Select(up => new Profile{name = up.Name, age = up.Age, country = up.Country});
var newProfile = params.plist.profileArray.Concat(profiles);
params.plist.profileArray = newProfile.ToArray();
答案 1 :(得分:1)
试试这个:
params.plist.profileArray = UserProfiles.ToArray();
这个怎么样?
params.plist.profileArray =
UserProfiles
.Select(up => new
{
name = up.Name,
age = up.Age,
country = up.Country,
})
.ToArray();
答案 2 :(得分:0)
由于您正在使用数组(并且C#中的数组具有固定大小),因此您需要使用组合数据创建一个新数组。
有几种方法可以做到这一点,最简单的可能就是这样:
var newList = new List<Profile>();
newList.AddRange(params.plist.profileArray);
newList.AddRange(UserProfiles);
params.plist.profileArray = newList.ToArray();
如果您可以更改Plist
的实施,我建议您将数组更改为List<Profile>
。然后代码看起来像这样:
params.plist.profileArray.AddRange(UserProfiles);
答案 3 :(得分:0)
尝试
params.plist.profileArray = params
.plist
.profileArray
.Concat( UserProfiles )
.ToArray()
;