【发布时间】:2010-02-16 12:56:23
【问题描述】:
如何使用尽可能少的代码行将布尔数组转换为“假、真、真、假”之类的字符串?
Python 允许我使用以下内容(非常漂亮和干净):
", ".join(map(str, [False, True, True, False]))
在 C# 中,string.Join 只允许我加入字符串数组。
那么在 C# 中做同样事情的捷径是什么?
【问题讨论】:
如何使用尽可能少的代码行将布尔数组转换为“假、真、真、假”之类的字符串?
Python 允许我使用以下内容(非常漂亮和干净):
", ".join(map(str, [False, True, True, False]))
在 C# 中,string.Join 只允许我加入字符串数组。
那么在 C# 中做同样事情的捷径是什么?
【问题讨论】:
var array = new[] { true, false, false };
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray());
Console.WriteLine(result);
【讨论】:
怎么样:
String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray())
【讨论】:
InvalidCastException。
new List<Boolean>后面的()。
Select 在这两种情况下都有效。
Select。
arrayOfBools.Select(x => x.ToString()).Aggregate((x, y) => x + ", " + y)
【讨论】:
如果您使用的是 .NET 4,以下行就足够了,因为String.Join<T> 在内部为每个项目调用了ToString() 方法。
Console.WriteLine(string.Join(", ", new[] { false, true, true, false }));
>>>> False, True, True, False
【讨论】:
var boolStrings = string.Join(",", new List<bool> { false, true, true, false }
.ConvertAll(x => x.ToString()).ToArray());
【讨论】:
var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray());
Console.WriteLine(str.ToString());
【讨论】:
类似
var s = from item in blnArray select item.Tostring();
然后使用可枚举的s来填充字符串数组?
没有实际测试过 - 如果我被要求查看它,我可能会这样处理它......
【讨论】:
var bools = new bool[] {false, true, true, false};
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString());
【讨论】: