只需使用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使用AgeID而不是ID,並且需要引用ID從AgeToCommaSeparated函數? – user441365 2012-02-21 11:41:12
我將所有內容委託給那裏使用的接口。查看更新。如果你不能或不想觸摸你的性別和年齡班,那麼你可以使用反思或Aliostad的建議。 – pangabiMC 2012-02-21 11:59:35