2011-09-13 9 views
3

利用可能である場合にのみ、私は、フォームからのデータを使用して文字列配列を構築するいくつかのコードがあります。は、配列に文字列を追加し、データが

   string[] var4 = new string[] { 
        "Issue=" + DropDownListIssue.SelectedItem.ToString(), 
        "SubIssue=" + DropDownListSubIssue.SelectedItem.ToString(), 
        "Layout=" + DropDownListLayout.SelectedItem.ToString() 
       }; 

このコードはデータが存在しない場合でも、配列のすべての要素が追加されます。たとえば、Issueの値が "Apple"であるとしますが、他の2つのドロップダウンリストは空白のままです。得VAR4このようになります:この場合

"Issue=Apple" 
"SubIssue=" 
"Layout=" 

、私はVAR4になりたい:

"Issue=Apple" 

それらが空白にされるSubIssue及びレイアウトは、アレイに追加されません。しかし、それらが記入されていれば、アレイに追加する必要があります。例:

文字列に値がある場合にのみ追加するにはどうすればよいですか?

+0

なぜ=の東を持たないアイテムを削除しないのはなぜですか? – SWeko

答えて

-1
List<string> list = new List<string>(); 
var str = DropDownListIssue.SelectedItem.ToString(); 
if (!string.IsNullOrEmpty(str)) 
    list.Add("Issue=" + str); 
str = DropDownListSubIssue.SelectedItem.ToString(); 
if (!string.IsNullOrEmpty(str)) 
    list.Add("SubIssue=" + str); 
str = DropDownListLayout.SelectedItem.ToString(); 
if (!string.IsNullOrEmpty(str)) 
    list.Add("Layout=" + str); 

string[] var4 = list.ToArray(); 
0

は、次の操作を行うことができます。

string[] possibleNulllVar4 = new string[] { 
    string.IsNullOrEmpty(DropDownListIssue.SelectedItem.ToString()) ? "Issue=" + DropDownListIssue.SelectedItem.ToString() : null, 
    string.IsNullOrEmpty(DropDownListSubIssue.SelectedItem.ToString()) ? "SubIssue=" + DropDownListSubIssue.SelectedItem.ToString() : null, 
    string.IsNullOrEmpty(DropDownListLayout.SelectedItem.ToString()) ? "Layout=" + DropDownListLayout.SelectedItem.ToString() : null 
}; 

編集:あなたは任意の空のノードを使用しない場合はああ、その後、次の操作を行います。

var var4 = possibleNulllVar4.Where(x => null != x).ToArray(); 

簡単に!

+0

しかし、彼の配列は2つの空のノードを持っています –

+0

簡単に修正する:) – Kevek

-1
それがそのまま動作しない場合はその文法/スペル/コードサンプルの一部を許してください、私は電話でよ

...

しかし、一般的な考え方はこれです:

これらのドロップダウンリストのコレクションをループして、選択した値がある場合は、渡された配列に値を追加するか、Arraylist.ToArray()またはList.ToArray()を使用してください。それを赤らめる。それは「コンパイルされない場合がありますので、電話で -

同様の(擬似)

List<DropDowns> dropDowns = ...//Get your dropdowns into the list 
foreach(dd in dropDowns) 
{ 
if(dd.SelectedItem != null && d.SelectedIndex != -1)  
    YourStringArray.Add(dd.CommandArgument + "=" + dd.SelectedValue); 
} 

申し訳へ:あなたが扱っているその1知っていると思いますので、各ドロップダウンには、それに引数/コマンドを持つことができます"それが私がID pseduoと記した理由です。 Forefachは最も効率的ではありませんが、醜い大量のif文から離れます。

関連する問題