我可以在一行代码中读取数组吗?

时间:2010-09-09 01:40:17

标签: c# lambda

假设我有一个数组int [] arr = {1,2,3,4}

我想将其转换为字符串。 结果我希望它像这个字符串a =“1,2,3,4”;

所以我可以用“string a = arr ....”来做这件事,而不是写一个for循环吗?

由于

4 个答案:

答案 0 :(得分:8)

从.NET 4开始,您只需执行以下操作:

var result = string.Join( ",", arr );

在早期版本中,

var result = string.Join( ",", arr.Select( a => a.ToString() ).ToArray() );

答案 1 :(得分:2)

您可以使用String.Join:

int[] arr = new [] { 4, 5, 6, 7 };
string joined = String.Join(",", arr);

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/57a79xd0.aspx

答案 2 :(得分:1)

string result = string.Join(", ", arr.Select(item => item.ToString()).ToArray());

答案 3 :(得分:1)

如果您不能使用.net 4(我还不能,因为我们的客户不会部署它),您可以使用扩展方法。这将适用于所有IEnumerable<T>'s,并通过适当实现的.ToString()覆盖。你也可以选择你想要的分离器。

如果您拥有以下内容,则可以执行string s = myenumerable.Seperated(",");

public static class EnumerableExtender
    {
        public static string Separated<T>(this IEnumerable<T> l, string separator)
        {
            var sb = new StringBuilder();
            var first = true;
            foreach (var o in l)
            {
                if (first) first = false; else sb.Append(separator);
                sb.Append(o.ToString());
            }
            return sb.ToString();
        }
    }