1

ソース文字列に 1 つまたは 2 つのピリオドを含めることができ、各数値が 2 桁で表される次の種類の変換を行う必要があります。したがって、「1」は「01」になり、「90」は「90」になります。before -> after の例を次に示します。

0.0 -> 0000
1.1 -> 0101
10.10 -> 1010
1.88 -> 0188
1.11.22 -> 011122
33.44.5 -> 334405

次の機能がありますが、さまざまな組み合わせで機能します。入力に1つまたは2つのピリオドがある場合にどのように機能させることができるかを誰かが提案できますか:

    public string DotFormatToRowKey(string tempRowKey) {
        return string.Join("", from s in id.Split('.')
                               select s.PadLeft(2, '0')).PadRight(4, '0'));
    }
4

2 に答える 2

2

PadLeft(2,'0')必要なのは部品だけだと思います

Console.WriteLine(string.Join("", "1.33.45".Split('.').Select(ech => ech.PadLeft(2, '0')).ToArray())); 
 //Outputs: 334405
Console.WriteLine(string.Join("", "1.1".Split('.').Select(ech => ech.PadLeft(2, '0')).ToArray()));
//Outputs: 0101

分割するとパーツが取得され、必要に応じてゼロで埋められます。長さは2示されている例のとおりです

return (string.Join("", tempRowKey.Split('.').Select(ech => ech.PadLeft(2, '0')).ToArray()) ;
于 2012-07-11T10:20:59.807 に答える
0

これは機能するはずです:

public string DotFormatToRowKey(string tempRowKey) {
        var splits = tempRowKey.Split('.') // Split string at "."
                     .Select(x => String.Format("{0:d2}", Int32.Parse(x))) // Specify string format
                     .ToList();
        return String.Join(String.Empty, splits.ToArray()); // Join array and return
}

参照: http: //msdn.microsoft.com/en-us/library/dd260048.aspx

于 2012-07-11T10:21:52.187 に答える