2012-05-02 21 views
0

どのようにして以下のメソッドをC#2.0に変換できますか?.NET 3.5から.NET 2.0への変換

private static string ToHexString(byte[] bytes) 
    { 
     return string.Join(string.Empty, bytes.Select(x => x.ToString("X2")).ToArray()); 
    } 

    private static byte[] ToByteArray(string hex) 
    { 
     return Enumerable.Range(0, hex.Length). 
       Where(x => 0 == x % 2). 
       Select(x => Convert.ToByte(hex.Substring(x, 2), 16)). 
       ToArray(); 
    } 

.NET 2.0での経験はありません。ありがとう!

答えて

0
void Main() 
{ 
    string s = ToHexString(new byte[]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}); 
    Console.WriteLine(s); 

    foreach (byte b in ToByteArray(s)) 
     Console.WriteLine(b); 
} 

private static string ToHexString(byte[] bytes) 
{ 
    StringBuilder sb = new StringBuilder(); 
    foreach (byte b in bytes) 
     sb.Append(b.ToString("X2")); 
    return sb.ToString(); 
} 

private static byte[] ToByteArray(string hex) 
{ 
    byte[] b = new byte[hex.Length/2]; 
    for (int i = 0; i < b.Length; i++) 
    { 
     b[i] = Convert.ToByte(hex.Substring(i*2,2), 16); 
    } 

    return b; 
} 
0

あなた自身でこの変換を行うことができます。明らかに、ループをforループに変換する必要があります。 Enumerable.Rangeは、本質的にループする配列をint[]としています。その後、Whereifのチェックとなり、Selectintから部分文字列への変換であり、最後にbyteへの変換であり、最後に、ループの外側に宣言されたList<byte>

私は完全な答えを出すことができましたが、私はこの種の練習があなたに残されているので、あなたはそれから学ぶことができると思います。

関連する問題