2016-12-18 1 views
0

ОтРазделить единое значение для многих в таблице C#

int BinaryTable = new int[] { 1101 }; 

Для

int BinaryTable = new int[] { 1,1,0,1 }; 

Не знаю, как изменить это правильно.

+4

'int [] BinaryTable'? –

+0

Я должен рассчитывать от двоичного значения до десятичного. –

+1

Вы должны предоставить нам дополнительную информацию. Ваш вопрос не содержит достаточной информации о том, что вы пытаетесь сделать. Измените свой вопрос, чтобы помочь объяснить, что вы пытаетесь сделать, и шаги, которые вы предприняли, чтобы попытаться решить эту проблему самостоятельно. См. Http://stackoverflow.com/help/how-to-ask –

ответ

1

Быстрый и грязный LINQ:

int value = 1101; // a bit strange representation 

int[] BinaryTable = value 
    .ToString() 
    .Select(c => c - '0') 
    .ToArray(); 

Или так 13 == 1101 binary:

int value = 13; // just an integer 

    int[] BinaryTable = Convert.ToString(value, 2) 
    .Select(c => c - '0') 
    .ToArray(); 

В случае, если вы хотите преобразовать один массив в другой массив используйте SelectMany вместо Select:

int[] source = new int[] {1101}; 

    int[] BinaryTable = source 
    .SelectMany(value => value.ToString() 
     .Select(c => c - '0')) 
    .ToArray(); 

or int [] source = new int [] {13};

int[] BinaryTable = source 
    .SelectMany(value => Convert 
     .ToString(value, 2) 
     .Select(c => c - '0')) 
    .ToArray(); 
2

Вы могли бы сделать это следующим образом:

var bits = BinaryTable.Select(b => 
       b.ToString(). 
       Select(r => r == '0' ? 0 : 1)) 
       .SelectMany(x => x); 

Это работает, если вы хотите получить от

[1101,11] → [1,1,0,1, 1,1]

. Не совсем понятно, что именно вы хотите. И это решение не проверяет, что ваш ввод действительно содержит только цифры 1 и 0, так как это целое число, которое теоретически может содержать каждое число.

2
int[] BinaryTable = new int[] { 1101 }; 
List<int[]> allItems = new List<int[]>(); 
foreach (var item in BinaryTable) 
{ 
    var items = item.ToString().Select(y => int.Parse(y.ToString())).ToArray(); 
    allItems.Add(items); 
} 

var final = allItems.SelectMany(x => x).ToArray(); 
Смежные вопросы