Join a string using delimiters

后端 未结 24 1652
北海茫月
北海茫月 2020-12-05 09:57

What is the best way to join a list of strings into a combined delimited string. I\'m mainly concerned about when to stop adding the delimiter. I\'ll use C# for my example

24条回答
  •  南笙
    南笙 (楼主)
    2020-12-05 11:02

    From http://dogsblog.softwarehouse.co.zw/post/2009/02/11/IEnumerable-to-Comma-Separated-List-(and-more).aspx

    A pet hate of mine when developing is making a list of comma separated ids, it is SO simple but always has ugly code.... Common solutions are to loop through and put a comma after each item then remove the last character, or to have an if statement to check if you at the begining or end of the list. Below is a solution you can use on any IEnumberable ie a List, Array etc. It is also the most efficient way I can think of doing it as it relies on assignment which is better than editing a string or using an if.

    public static class StringExtensions
    {
        public static string Splice(IEnumerable args, string delimiter)
        {
            StringBuilder sb = new StringBuilder();
            string d = "";
            foreach (T t in args)
            {
                sb.Append(d);
                sb.Append(t.ToString());
                d = delimiter;
            }
            return sb.ToString();
        }
    }
    

    Now it can be used with any IEnumerable eg.

    StringExtensions.Splice(billingTransactions.Select(t => t.id), ",")

    to give us 31,32,35

提交回复
热议问题