簡體   English   中英

你怎么解析C#中的字符串?

[英]How can you parse a string in C#?

在開發評分組件時,我們有一個棘手的難題。 我們有一個C#程序,我們以Oracle的格式從Oracle數據庫中獲得分數

字段名

場價值

我們將它們解析為兩個逗號分隔的字符串。

我們要求當我們得到一個字段名為“LOW @ HIGH”且字段值為“11 @ 21”的字段名時,我們希望將其放入另一個變量中,格式為LOW = 11,HIGH = 21。

首先解析輸入:

var parts = input.Split('@');
var i1 = int.Parse(parts[0]);
var i2 = int.Parse(parts[1]);

接下來計算結果:

return "LOW=" + i1 + ",HIGH=" + i2;

如果將其分解為這兩個步驟,問題就變得容易了。

還有一個替代方案,它向您介紹了非常有用的Zip擴展方法......

string Parse(string fieldName, string fieldValue)
{
  return string.Join( ",",
           fieldName.Split( '@' )
             .Zip( fieldValue.Split( '@' ),
               ( name, value ) => string.Concat( name, "=", value ) ) );
}

所有驗證檢查由您決定......

請注意,如果“字段名稱”字段包含兩個以上的字段名稱,則該方法有效。 例如,字段名稱“LOW @AVERAGE @ HIGH”和字段值“11 @ 15 @ 21”將為您提供LOW=11,AVERAGE=15,HIGH=21

這是一個快速而有趣的練習,但我不得不想知道為什么它會像這樣非規范化?!

暫無
暫無

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

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