2010-02-16 39 views
10

Làm cách nào bạn chuyển đổi một mảng các boolean thành chuỗi như "false, true, true, false" - sử dụng ít dòng mã khả thi?Mã gọn gàng để chuyển đổi bool [] -> "false, true, true, false"

Python cho phép tôi sử dụng sau đây (rất đẹp và sạch sẽ):

", ".join(map(str, [False, True, True, False])) 

Trong C#, string.Join chỉ cho phép tôi tham gia một mảng các chuỗi.

Vậy cách ngắn gọn để thực hiện tương tự trong C# là gì?

Trả lời

27
var array = new[] { true, false, false }; 
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray()); 
Console.WriteLine(result); 
2
var boolStrings = string.Join(",", new List<bool> { false, true, true, false } 
     .ConvertAll(x => x.ToString()).ToArray()); 
4

Làm thế nào về:

String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray()) 
+0

Điều này sẽ ném một 'InvalidCastException'. –

+0

@ Jao, vâng chỉ biên dịch ở đó, được cập nhật bằng ConvertAll – James

+0

Bạn có thể xóa '()' sau 'Danh sách mới 'khi bạn chỉ định các phần tử. –

1

cái gì đó dọc theo dòng của

var s = from item in blnArray select item.Tostring(); 

Sau đó sử dụng s đếm được để cư mảng chuỗi?

Không thực sự thử nghiệm này - đây chỉ là cách tôi có thể tiếp cận nó nếu tôi được yêu cầu nhìn vào nó ...

+0

Cảm ơn bạn đã chỉnh sửa John - Tôi đã học được (thụt lề) cách đánh dấu văn bản là mã ... –

1
var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray()); 
Console.WriteLine(str.ToString()); 
1
var bools = new bool[] {false, true, true, false}; 
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString()); 
+0

Dường như không hoạt động vì giá trị trả về lambda phải là boolean. – AndiDog

4
arrayOfBools.Select(x => x.ToString()).Aggregate((x, y) => x + ", " + y) 
2

Nếu bạn đang sử dụng NET 4 , dòng sau là đủ, bởi vì String.Join<T> gọi nội bộ ToString() -method cho mỗi mục.

Console.WriteLine(string.Join(", ", new[] { false, true, true, false })); 

>>>> False, True, True, False 
Các vấn đề liên quan