你會如何將一個布爾值數組轉換爲像「假,真,真,假」的字符串 - 可能?整潔的代碼轉換布爾[] - >「假,真,真,假」
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);
var boolStrings = string.Join(",", new List<bool> { false, true, true, false }
.ConvertAll(x => x.ToString()).ToArray());
如何:
String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray())
沿
var s = from item in blnArray select item.Tostring();
然後用枚舉s到填充字符串數組東西線?如果您使用的.NET 4這只是我怎麼可能接近它,如果有人問我看它......
感謝您的編輯約翰 - 我現在已經瞭解到(縮進)如何將文本標記爲代碼... – 2010-02-16 16:11:17
var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray());
Console.WriteLine(str.ToString());
var bools = new bool[] {false, true, true, false};
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString());
由於lambda返回值必須是布爾值,因此似乎不起作用。 – AndiDog 2010-02-16 18:08:38
arrayOfBools.Select(x => x.ToString()).Aggregate((x, y) => x + ", " + y)
-
沒有實際測試過這,因爲String.Join<T>
內部調用ToString()
- 每個項目的方法,下面的行就足夠了。
Console.WriteLine(string.Join(", ", new[] { false, true, true, false }));
>>>> False, True, True, False
這會拋出一個'InvalidCastException'。 – 2010-02-16 13:01:30
@Joao,是剛剛編譯它,使用ConvertAll更新 – James 2010-02-16 13:02:32
當你指定元素時,你可以在'new List'之後移除'()'。 –
2010-02-16 13:06:08