How to join as a string a property of a class?

前端 未结 1 1058
南笙
南笙 2021-01-04 04:08

\"I have a List of objects with a property \"CustomizationName\".

I want to join by a comma the values of that property, i.e.; something like this:

L         


        
相关标签:
1条回答
  • 2021-01-04 04:56
    string foo = String.Join(",", myClasslist.Select(m => m.CustomizationName).ToArray());
    

    If you want, you can turn this into an extension method:

    public static class Extensions
    {
        public static string ToDelimitedString<T>(this IEnumerable<T> source, Func<T, string> func)
        {
            return ToDelimitedString(source,",",func);
        }
    
        public static string ToDelimitedString<T>(this IEnumerable<T> source, string delimiter, Func<T, string> func)
        {
            return String.Join(delimiter, source.Select(func).ToArray());
        }
    }
    

    Usage:

    public class MyClass
    {
        public string StringProp { get; set; }
    }
    

    .....

            var list = new List<MyClass>();
            list.Add(new MyClass { StringProp = "Foo" });
            list.Add(new MyClass { StringProp = "Bar" });
            list.Add(new MyClass { StringProp = "Baz" });
    
            string joined = list.ToDelimitedString(m => m.StringProp);
            Console.WriteLine(joined);
    
    0 讨论(0)
提交回复
热议问题