zoukankan      html  css  js  c++  java
  • 用扩展方法生成分割符字符串

    使用扩展方法对IEnumerable<T>扩展,来生成分割符字符串.看这个方法:

    /// <summary>
    /// Get the delimited string.
    /// </summary>
    /// <typeparam name="T">T</typeparam>
    /// <param name="list">The list.</param>
    /// <param name="delimiter">The delimiter.</param>
    /// <param name="action">The action.</param>
    /// <returns>string</returns>
    public static string ToDelimitedString<T>(this IEnumerable<T> list, string delimiter, Func<T, string> action)
    {
        var sb = new System.Text.StringBuilder();
        foreach (var t in list)
        {
            sb.Append(action.Invoke(t));
            sb.Append(delimiter);
        }
        sb.Remove(sb.Length - delimiter.Length, delimiter.Length);
    
        return sb.ToString();
    }

    代码很简单,就不说了,来难证下,假设有以下类:

    public class Person
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

    UnitTest,这里是”,”分隔符,当然你可以用其它的:

    /// <summary>
    /// Tests the delimited string.
    /// </summary>
    /// <remarks>author:Petter Liu  http://wintersun.cnblogs.com </remarks>
    [Test]
    public void TestDelimitedString()
    {
        var list = new List<Person>
                       {
                           new Person() {FirstName = "Petter", LastName = "Liu"},
                           new Person() {FirstName = "Tina", LastName = "Lin"},
                           new Person() {FirstName = "David", LastName = "Pan"},
                           new Person() {FirstName = "John", LastName = "Robert"}
                       };
    
        var result=list.ToDelimitedString(",", p => string.Format("{0} {1}", p.FirstName, p.LastName));
    
        System.Diagnostics.Debug.WriteLine(result);
        // Petter Liu,Tina Lin,David Pan,John Robert
    }

    用好扩展方法,能为我们省很多的代码量.

    Author:PetterLiu    http://wintersun.cnblogs.com

  • 相关阅读:
    django channle的使用
    显示react配置
    细思极恐-你真的会写java吗?
    Java String 面试题以及答案
    2017年--10年java大神告诉你开发最常用的百分之二十的技术有哪些?
    2017常见的50道java基础面试题整理(附答案)
    java如何填写简历?(干货篇)
    你所不知道的 Java 之 HashCode
    Java一般要学多久?
    Java 线程的中断机制
  • 原文地址:https://www.cnblogs.com/wintersun/p/1490310.html
Copyright © 2011-2022 走看看