从 .NET 3.5 转换到 .NET 2.0
Posted
技术标签:
【中文标题】从 .NET 3.5 转换到 .NET 2.0【英文标题】:Conversion from .NET 3.5 to .NET 2.0 【发布时间】:2012-05-02 02:40:35 【问题描述】:如何将以下方法转换为 C# 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 的经验。谢谢!
【问题讨论】:
【参考方案1】: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;
【讨论】:
【参考方案2】:您应该能够自己进行此转换。显然,您需要将其转换为 for
循环。 Enumerable.Range
本质上提供了一个 int[]
数组,用于循环。之后,Where
等同于 if
检查,Select
是从 int
到子字符串,最后到 byte
的转换,最后,您将所有这些内容填充到数组中,可能通过将它们添加到循环外声明的List<byte>
中。 (完成后可以拨打名单上的ToArray
)
我可以提供一个完整的答案,但我认为这种练习最好留给你,这样你就可以从中学习。
【讨论】:
以上是关于从 .NET 3.5 转换到 .NET 2.0的主要内容,如果未能解决你的问题,请参考以下文章
将 VB.NET 2.0 Winform 迁移到 3.5 WPF
从 .net 2.0 转换到 4.0 后对性能问题进行故障排除
.NET Frameworks 从 3.5 到 2.0 的向前兼容性