単にString.Join
を使用します。
String.Join(",", ageList.Select(x=>x.Name));
UPDATE
あなたが表現をコンパイルして実行するとコストがかかることをあなたの人生を容易なく、慎重にするためにこれを行うことができます(つまり、MVCは、とにかく何をするかですが、内部でキャッシュを使用しています):
public static class JoinExtensions
{
public static string Join<TModel, TProperty>(this IEnumerable<TModel> enumerable, Expression<Func<TModel, TProperty>> expression)
{
var compiled = expression.Compile();
return string.Join(",", enumerable.Select(compiled));
}
}
public class Age
{
public string Name { get; set; }
}
public class Gender
{
public string GenderId { get; set; }
}
これで、wri TE:
IEnumerable<Age> ages = new[]
{
new Age(){Name = "1"}, new Age(){Name = "2"}, new Age(){Name = "3"},
};
Console.WriteLine(ages.Join(x => x.Name)); // outputs "1,2,3"
あなたは、任意のクラスこのを使用することができます。たとえば:その後、
public class Gender
{
public string GenderId { get; set; }
}
そして:
IEnumerable<Gender> genders = new[]
{
new Gender(){GenderId = "16"}, new Gender(){GenderId = "22"}, new Gender(){GenderId = "35"},
};
Console.WriteLine(genders.Join(x => x.GenderId));
GenderがGenderIDを使用し、AgeではIDの代わりにAgeIDを使用し、IDを参照する必要がありますAgeToCommaSeparated関数から? – user441365
私はそこで使用されているインターフェイスにすべてを委任します。更新を参照してください。あなたが性別や年齢のクラスに触れることができない、またはしたくない場合は、リフレクションやAliostadの示唆を使用できます。 – pangabiMC