C#中字符串按ASCII排序
时间: 2024-09-19 12:15:12 浏览: 57
在C#中,如果你想对字符串按照ASCII值进行排序,你可以直接使用内置的`Array.Sort()`或`List<T>.Sort()`方法,这两个方法默认就是按照字符的Unicode编码(包括ASCII)进行升序排列。如果你有一个字符串数组或列表,例如:
```csharp
string[] stringArray = {"abc", "def", "ghi"};
```
你可以这样排序:
```csharp
Array.Sort(stringArray);
```
或者如果你有一个自定义的集合,如`List<string>`:
```csharp
List<string> stringList = new List<string>{"abc", "def", "ghi"};
stringList.Sort();
```
这将把字符串按照字母顺序(即ASCII值)排序。
注意,这种方法会保持原词的原始顺序,而不是单词内部字符的顺序。比如,“aa”会在“ab”之前,因为“A”的ASCII码(65)小于“B”(66)。如果需要按字典顺序排序,即忽略大小写,可以提供一个自定义的比较器作为参数:
```csharp
Array.Sort(stringArray, StringComparer.OrdinalIgnoreCase);
```
相关问题
C#针对json串中的key进行ascii升序
在C#中,可以使用`Newtonsoft.Json`库来对JSON字符串中的键进行ASCII升序排序。具体步骤如下:
1. 将JSON字符串反序列化为`JObject`对象:
```
JObject jsonObj = JObject.Parse(jsonStr);
```
2. 使用LINQ查询获取所有的键,并按照ASCII码进行升序排序:
```
var sortedKeys = jsonObj.Properties().OrderBy(p => p.Name, StringComparer.Ordinal).Select(p => p.Name);
```
这里使用了`StringComparer.Ordinal`来指定按照ASCII码进行排序。
3. 遍历排好序的键,获取相应的值:
```
foreach (var key in sortedKeys)
{
var value = jsonObj[key];
// do something with key and value
}
```
完整示例代码如下:
```
using Newtonsoft.Json.Linq;
using System;
using System.Linq;
namespace JsonSort
{
class Program
{
static void Main(string[] args)
{
string jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
JObject jsonObj = JObject.Parse(jsonStr);
var sortedKeys = jsonObj.Properties().OrderBy(p => p.Name, StringComparer.Ordinal).Select(p => p.Name);
foreach (var key in sortedKeys)
{
var value = jsonObj[key];
Console.WriteLine($"{key}: {value}");
}
Console.ReadKey();
}
}
}
```
输出结果:
```
age: 30
city: New York
name: John
```
阅读全文