2016-12-29 6 views
-2

これを検索する方法がわかりません。私がしなければならないことは、数字ではなく文字で数えることです。入力には文字と数字だけが含まれ、空白やダッシュは含まれません。ループカウント文字列(ex A to ABC)C#

例えば、ユーザが開始のために「A」を、終了のために「ABC」を入力すると、A、B、C、... AA、AB、AC、... ABCが出力されます。

"Z"まで増やし、最後のインデックスを増やしてインデックスを増やし、それが等しいかどうかを確認してから再度ループしてください。 "Z"がヒットしたら"0 - 9"でループする番号(文字列として扱われる)があります。

私は考えているよりも簡単な方法があるようです。私は変換できるJavaのソリューションを見たことがありますが、それがどのように動作するのか完全には理解していませんSO Post MODを使用していて、実際に値を比較していません。これは、別のプログラムで使用するために、コンピュータラボでNetBIOS名を生成するための小さなプロジェクトに過ぎません。すべての名前は順次です。

おかげで、

デイブ

+1

あなたが持っているコードを共有することはできますか? –

+1

あなたが探している用語は「組み合わせ」です。 – Abion47

+1

あなたは何をしようとしていますか?入力例を入力して完成できますか?期待される出力? – Hogan

答えて

-1
Dim array1 As String() = {"a", "b", "c"} 
    Dim array2 As String() = {"a", "b", "c"} 

    Dim result = array1.SelectMany(Function(f) array2, Function(f, a) New With {Key .first = f, Key .second = a}) 

    Dim s As String = String.Empty 
    For i As Integer = 0 To result.Count - 1 
     s += result(i).first + result(i).second + " " 
    Next 

    MessageBox.Show(s) 

出力:

AA AB 交流 BA BB BC CA CB CC

私はこれがあなたの後ろのものに近いかもしれないと思います。 SQLのクロス・ジョインに似ています。これは、VB.Netで動作しますが、あなたは

EDITコード変換を実行することができます:(未テスト、()C#にVBのコードコンバータを介してRAN)

string[] array1 = { 
    "a", 
    "b", 
    "c" 
}; 
string[] array2 = { 
    "a", 
    "b", 
    "c" 
}; 

dynamic result = array1.SelectMany(f => array2, (f, a) => new { 
    first = f, 
    second = a 
}); 

string s = string.Empty; 
for (int i = 0; i <= result.Count - 1; i++) { 
    s += result(i).first + result(i).second + " "; 
} 

MessageBox.Show(s); 

//======================================================= 
//Service provided by Telerik (www.telerik.com) 
//Conversion powered by NRefactory. 
//Twitter: @telerik 
//Facebook: facebook.com/telerik 
//=======================================================