1

文字列の並べ替え方法に関するガイドラインが真剣に必要です。おそらく、いくつかのサンプル コードを提供できれば、大きな助けになるでしょう。これは宿題ではありません。複数のチャネル名を同時にチェックし、ソート名/文字列の結果に基づいてチャネルをフィードするには、このソート方法が必要です。

まず、次のような文字列配列パターンを作成します。

string[] strList1 = new string[] {"TDC1ABF", "TDC1ABI", "TDC1ABO" };

string[] strList2 = new string[] {"TDC2ABF", "TDC2ABI", "TDC2ABO"};

string[] strList3 = new string[] {"TDC3ABF", "TDC3ABO","TDC3ABI"}; //2nd and 3rd element are swapped

以下のような string[] 結果を受け取りたいです。

//result1 = "TDC1ABF , TDC2ABF, TDC3ABF"
//result2 = "TDC1ABI , TDC2ABI, TDC3ABI"
//result3 = "TDC1ABO , TDC2ABO, TDC3ABO"

わかりました、これがソートを行う私の考えです。まず、各 strList ソート キーワード *ABF. 次に、*ABF を含むすべての文字列を結果配列に入れます。最後に順序ソートを実行して、それに応じて文字列配列を TDC1ABF、TDC2ABF、TDC3ABF に整列させます。ループ内の他の文字列配列に対して同じことを行います。

だから、私の問題は..文字列配列内の文字列内で *ABF を検索する方法は?

4

3 に答える 3

1

このようなことをすると、すべての合計を比較して順番に並べることができます。低い合計は 1 番目に近いものであり、高い合計はさらに下にあるものです。

    static void Main(string[] args)
    {
        string[] strList1 = new string[] { "TDC1ABF", "TDC1ABI", "TDC1ABO" };
        string[] strList2 = new string[] { "TDC2ABF", "TDC2ABI", "TDC2ABO" };
        string[] strList3 = new string[] { "TDC3ABF", "TDC3ABO", "TDC3ABI" };


        arrange(strList1);
        arrange(strList2);
        arrange(strList3);
    }

    public static void arrange(string[] list)
    {
        Console.WriteLine("OUT OF ORDER");
        foreach (string item in list)
        {
            Console.WriteLine(item);
        }
        Console.WriteLine();
        for (int x = 0; x < list.Length - 1; x++)
        {

            char[] temp = list[x].ToCharArray();
            char[] temp1 = list[x + 1].ToCharArray();

            int sum = 0;

            foreach (char letter in temp)
            {
                sum += (int)letter; //This adds the ASCII value of each char 
            }

            int sum2 = 0;

            foreach (char letter in temp1)
            {
                sum2 += (int)letter; //This adds the ASCII value of each char 
            }

            if (sum > sum2)
            {
                string swap1 = list[x];
                list[x] = list[x + 1];
                list[x + 1] = swap1;
            }

        }
        Console.WriteLine("IN ORDER");
        foreach (string item in list)
        {
            Console.WriteLine(item);
        }
        Console.WriteLine();
        Console.ReadLine();
    }
于 2013-05-16T03:01:55.930 に答える
0

配列が配列と同じ数の要素を持つことが保証されている場合は、最初に個々の配列を並べ替え、並べ替えられた配列を nxn 配列にダンプしてから、行列を転置できます。

于 2013-05-16T03:21:59.943 に答える