Бір жолға біріктірілген биттерді

Кейбір биттерді біреумен байланыстырғым келеді. Менде бұл әдіс бар:

public BitArray Encode(string source)
{
    List encodedSource = new List();

    for (int i = 0; i < source.Length; i++)
    {
        List encodedSymbol = this.Root.Traverse(source[i], new List());
        encodedSource.AddRange(encodedSymbol);
    }

    BitArray bits = new BitArray(encodedSource.ToArray());

    return bits;
}

Ол маған 0/1 екілік биттерді қайтарады, енді маған осы кодты көрсету үшін шығу керек:

foreach (bool bit in encoded)
{
    MessageBox.Show((bit ? 1 : 0) + "");
}

Енді мен әрдайым MessageBox-ты әр бит үшін көрсетіп отырмын, бірақ қалайша барлық биттерді бір MessageBox-ге байланыстыра аламын, бұл ащы мәселе болуы мүмкін, бірақ менің басымды орап алмаймын.

0

11 жауаптар

var bitString = string.Concat(encoded.Select(bit => bit ? "1" : "0"))
5
қосылды
Рахмет, бұл ақыл жасады!
қосылды автор user2022298, көзі
var bitString = string.Concat(encoded.Select(bit => bit ? "1" : "0"))
5
қосылды
Рахмет, бұл ақыл жасады!
қосылды автор user2022298, көзі
var bitString = string.Concat(encoded.Select(bit => bit ? "1" : "0"))
5
қосылды
Рахмет, бұл ақыл жасады!
қосылды автор user2022298, көзі

Мұнда BitArray кеңейтімінің әдісі берілген, ол келесі әрекетті орындауы керек:

public static class BitArrayExtensions
{
    public static string ToBitString(this BitArray encoded)
    {
        if (encoded == null)
        {
            return string.Empty;
        }

        var sb = new StringBuilder(encoded.Count);

        foreach (bool bit in encoded)
        {
            sb.Append(bit ? "1" : "0");
        }

        return sb.ToString();
    }
}

сіздің кодаңызда келесідей пайдаланыңыз:

MessageBox.Show(encoded.ToBitString());
1
қосылды

StringBuilder пайдалану

StringBuilder tmp = new StringBuilder(encoded.Count)
foreach (bool bit in encoded)
{
    tmp.Append(bit ?"1": "0"));
}
MessageBox.Show(tmp.ToString());
1
қосылды
Бұл тестіленген және жұмыс істейді, күш-жігеріңізге рақмет!
қосылды автор user2022298, көзі
Оқасы жоқ)
қосылды автор Guru Stron, көзі

Бұл сізге не істеу керектігін көрсетеді:

Бұл негізінен барлық жазбалар арқылы өтіп, жазба түріне байланысты «1» немесе «0» тізіміне қосылады.

    public static string ConcatList(List list)
    {
        StringBuilder builder = new StringBuilder();
        foreach (bool b in list)
        {
            builder.Append(b == true ? "1" : "0";
        }
        return builder.ToString();
    }
1
қосылды

Бұл сізге не істеу керектігін көрсетеді:

Бұл негізінен барлық жазбалар арқылы өтіп, жазба түріне байланысты «1» немесе «0» тізіміне қосылады.

    public static string ConcatList(List list)
    {
        StringBuilder builder = new StringBuilder();
        foreach (bool b in list)
        {
            builder.Append(b == true ? "1" : "0";
        }
        return builder.ToString();
    }
1
қосылды

Бұл сізге не істеу керектігін көрсетеді:

Бұл негізінен барлық жазбалар арқылы өтіп, жазба түріне байланысты «1» немесе «0» тізіміне қосылады.

    public static string ConcatList(List list)
    {
        StringBuilder builder = new StringBuilder();
        foreach (bool b in list)
        {
            builder.Append(b == true ? "1" : "0";
        }
        return builder.ToString();
    }
1
қосылды

Менің ұсынысым:

string bitString = string.Empty;
foreach (bool bit in encodedSource)
{
  bitString = string.Concat(bitString, (bit ? "1" : "0"));
}
0
қосылды
Барлық конструкциялармен жұмыс істеу мүмкіндігі. Басқа жауаптар StringBuilder бұны болдырмайды.
қосылды автор Jesse C. Slicer, көзі

Менің ұсынысым:

string bitString = string.Empty;
foreach (bool bit in encodedSource)
{
  bitString = string.Concat(bitString, (bit ? "1" : "0"));
}
0
қосылды
Барлық конструкциялармен жұмыс істеу мүмкіндігі. Басқа жауаптар StringBuilder бұны болдырмайды.
қосылды автор Jesse C. Slicer, көзі

Менің ұсынысым:

string bitString = string.Empty;
foreach (bool bit in encodedSource)
{
  bitString = string.Concat(bitString, (bit ? "1" : "0"));
}
0
қосылды
Барлық конструкциялармен жұмыс істеу мүмкіндігі. Басқа жауаптар StringBuilder бұны болдырмайды.
қосылды автор Jesse C. Slicer, көзі