在C#中打印字符串中存在的"1"数的位置

Ham*_*DBA 0 c# visual-studio-2008 c#-4.0

我正在制作一个将hexa值转换为二进制值的程序.好吧,我确实做到了,但现在我在我的程序的第二部分面临一个问题

现在我想显示我的二进制文件中存在的"1"的位置,例如我的二进制文件

0100100101101

它应该告诉我

2,5,8,10,11,13

private void button1_Click(object sender, EventArgs e)

     {
        string temp = textBox1.Text;
        string binary = ConvertTOBinary(temp);


     }                  // This is the code of my Button 

public string ConvertTOBinary(string temp)
    {

        string binaryval = "";
        binaryval = Convert.ToString(Convert.ToInt64(temp, 16), 2);
        MessageBox.Show(binaryval);
        return binaryval;
     }
Run Code Online (Sandbox Code Playgroud)

我在C#中制作!!

Ani*_*dha 6

var indexes=binary.Select((x,i)=>new{digit=x,index=i})
                  .Where(x=>x.digit=='1')
                  .Select(x=>x.index+1);
Run Code Online (Sandbox Code Playgroud)

或者在正则表达式中

var indexes=Regex.Matches(binary,"1")
                 .Cast<Match>()
                 .Select(x=>x.Index+1);
Run Code Online (Sandbox Code Playgroud)

要么

List<int> indexes=new List<int>();
for(int i=0;i<binary.length;i++)
{
    if(binary[i]=='1')indexes.Add(i+1);
}
Run Code Online (Sandbox Code Playgroud)