簡體   English   中英

C#字符串排序數組

[英]C# ordering array of strings

我有一個字符串數組,格式為"ColX=Name=Value" ,其中X是數字,X> = 4。

我想按X的升序對數組進行排序,我嘗試使用
int colNbr = int.parse(string.Split('=')[0].Substring(3))
檢索X的值,但后來我不知道如何對字符串進行排序:/

任何更簡單的建議表示贊賞:)

您幾乎掌握了邏輯,只想嘗試使用OrderBy。 以下代碼將幫助您完成此任務?

List<string> inputList = SomeMethod(); // will populate the list
inputList = inputList.OrderBy(x=> int.parse(x.Split('=')[0].Substring(3))).ToList();

嘗試使用 (上下文中為匿名 ),而不是原始string s:

string[] source = ...

var data = source
  .Select(line => line.Split('='))
  .Select(items => new {           // Let's have classes
      Col = int.Parse(items[0].Substring(3)),
      Name = items[1],
      Value = items[2], })
  .OrderBy(item => item.Col);     // ... which are easy to handle (e.g. sort) 

請注意,如果您決定在給定的ColName排序,那么您要做的就是添加.ThenBy(item => item.Name) :類易於維護。

如果要返回string[]

string[] sorted = data
  .Select(item => $"Col{item.Col},{item.Name},{item.Value}")
  .ToArray(); 

您可以使用OrderBy擴展方法。

 string[] sortedArrayString = arrayOfString
   .OrderBy(str => int.parse(str.Split('=')[0].Substring(3)))
   .ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM