将字符串转换为十六进制字符串的C#惯用方式是什么? - c#

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。

已关闭8年。

我有一串字符,但是我想有一串十六进制字符,其中通过将原始字符转换为整数,然后将这些整数转换为十六进制字符来转换十六进制字符。我怎么做?

这是我在VB中执行的操作:

for i = 1 to len(str)
    hex_str = hex_str + lcase(cstr(hex(asc(mid(str, i, 1))))) 
next 

现在,在C#中最惯用的方法是什么?

参考方案

在C#中,我能想到的最简单的方法是:

var hexStr = str.ToCharArray()
                .Aggregate("", (current, c)
                               => current + Convert.ToInt32(c).ToString("X"));

第一行将字符串转换为char[]类型的字符数组,第二行和第三行将每个字符转换为整数Int32,然后转换为String类型的十六进制字符。该十六进制字符通过aggregate function添加到类型hexStrString中。

这是上面表达式中使用的函数:

String.ToCharArary
Enumerable.Aggregate;从System.LINQ,所以您可能需要添加using System.LINQ;
Convert.ToInt32
Int32.ToString(String format),传递"X"可使结果为十六进制而不是十进制。

对于聚合,我使用了lambda expression(parameters => return value)。该函数需要currentc并执行return current + Convert.ToInt32(c).ToString("X");

如果不清楚,请在下面的评论中提问。

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

java.net.URI.create异常 - java

java.net.URI.create("http://adserver.adtech.de/adlink|3.0") 抛出java.net.URISyntaxException: Illegal character in path at index 32: http://adserver.adtech.de/adlink|3.0 虽然n…

根据另一个列表确定列表的索引,反之亦然,欢迎使用C#/ VB.NET或JavaScript解决方案 - c#

假设您有列表1(ilist1)和列表2(ilist2),两个列表都有3个项目。在索引为0的项目1中,其文本为“-选择-”在索引1 item2中,其文本为“是”在索引2 item3中,其文本为“ No”这两个列表具有相同的项目。我想知道是否可以使用SelectedIndexChanged或类似的东西使列表一的选择为“是”,使列表二的选择为“否”,反之亦然。例如…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

ImageButton中的无效回发或回调参数 - c#

我的Click事件删除按钮(图像按钮)时遇到问题。我知道对此还有其他疑问,但是我什么都不懂!我不明白没有答案!我做了所有其他所有问题中指定的内容!此页面中使“重定向”到示例的其他事件效果很好!我很清楚?需要更多细节吗?堆栈跟踪或更多代码?错误是: 无效的回发或回调参数。使用配置或页面中的启用事件验证。为了安全起见,此功能验证回发或回调事件的参数源自最初呈现它…