string
このような配列を特別な形式にソートする必要があります。私たちの配列は次のとおりです。
input1 = new string[12]{"Active1","12","mm","Active2","17","mm","Width","25","mil","Height","20","mil"}
必要なソートリストは次のとおりです。
sort = new string[6]{"Serial","Width","Height","Active1","Active2","Time"}
私の出力の有効な形式は次のとおりです。
出力= [{Serial、null、null}、{Width、25、mil}、{Height、20、mil}、{Active1,12、mm}、{Active2,17、mm}、{Time、null、null} ]
配列にnull
存在しないデータの値を設定する必要がありますInput
。
私は自分の目的のためにこのコードを使用しています:
var Output = (from i in Enumerable.Range(0, input.Length / 3)
let index = Array.IndexOf(sort, input[i * 3])
where index >= 0
select ne3w string[] { input[i * 3], input[i * 3 + 1] , input[i * 3 + 2]})
.OrderBy(a => Array.IndexOf(sort, a[0])).ToArray();
ただし、input
配列に存在しない値は表示されません。
私はこれを別の方法に入れます:
private static IEnumerable<string[]> TransformInput(string[] input)
{
return from key in new[] { "Serial", "Width", "Height", "Active1", "Active2", "Time" }
let keyIndex = Array.IndexOf(input, key)
let hasData = keyIndex > 1
select new[]
{
key,
hasData ? input[keyIndex + 1] : null,
hasData ? input[keyIndex + 2] : null
};
}
そして、それを次のように使用します。
var input1 = new string[12]
{ "Active1", "12", "mm", "Active2", "17", "mm", "Width", "25", "mil", "Height", "20", "mil" };
var sorted = TransformInput(input1);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加