2

部品名の文字列からリストを作成しようとしています。リストの最後の名前を除くすべての名前の表示をスキップしています..なぜこれをやっているのですか? これを行うより良い方法はありますか?

私のコードビハインド

    List<string> Ta1PartNumbers = ta1input.Split('\n').ToList<string>(); //Trying to split at the line break.. Would this be the proper way to do it?

    foreach (string Tpartnumber in TramPartNumbers)
    {
        Div1.InnerText = (Tpartnumber);
    }


リストは次のようになります:
Part_numbers
1017foo
1121bar
など..

4

4 に答える 4

5

ループの反復ごとに innerText 値をリセットしているため、最後の値のみが保持されます。+=演算子で追加してみてください

foreach (string Tpartnumber in TransimPartNumbers)
{
    Div1.InnerHtml += Tpartnumber + "<br />";
}
于 2012-06-05T00:35:57.087 に答える
1

必要のない場所で List を使用することは避けたいと思います。代わりにこの分割方法を使用してください。ただし、\r\n が必要だと思います...そして、他のポスターと同様に、更新する + ではなく、追加する += が必要でした。

string[] lines = Regex.Split(ta1input, "\r\n");

foreach (string line in lines)
{
    Div1.InnerText += Tpartnumber;
}
于 2012-06-05T00:40:47.477 に答える
1

私は必要以上にこの間違いを犯します。試す:

Div1.InnerText = "";
foreach (string Tpartnumber in TransimPartNumbers)
{
   Div1.InnerText += (Tpartnumber);
}

基本的に毎回以前の値を上書きしています。

于 2012-06-05T00:38:53.687 に答える
0

ループを反復するたびに、InnerTextofDiv1が現在の文字列に置き換えられます。これが、最後の文字列のみを取得している理由です。以前のすべての文字列を上書きしました。

しかし、なぜ文字列を分割するのでしょうか? すべての文字列を div に書き込みたい場合は、次のようにします。

Div1.InnerText = ta1Input;

最終的な HTML として何が必要ですか?

Part_numbers<br/>
1017foo<br/>
1121bar<br/>
etc..<br/>

または

<div>Part_numbers</div>
<div>1017foo</div>
<div>1121bar</div>
<div>etc..</div>

または、他の何か?個人的には後者の方が好きです。私はこのようなことをします:

string[] Ta1PartNumbers = ta1input.Split('\n');

foreach (string Tpartnumber in Ta1PartNumbers)  
{
    var div = new HtmlGenericControl("div");
    div.InnerText = Tpartnumber;
    Div1.Controls.Add(div);
}
于 2012-06-05T00:43:16.900 に答える