2011-09-13 7 views
3

내가 양식에서 데이터를 사용하여 문자열 배열을 구축하는 코드가 있습니다배열에 문자열을 추가

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

가이 코드는 데이터가없는 경우에도 배열에 모든 요소를 ​​추가합니다. 예를 들어 Issue의 값이 "Apple"이지만 다른 두 개의 드롭 다운리스트는 비어 있습니다. 그 결과 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()를 사용하지 않는 이유는 무엇입니까? 그것을 redim. 이 "컴파일되지 않을 수도 있습니다 전화 -

유사 (의사)

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); 
} 

죄송에 : 당신은 당신이 상대하고있는 한 알 것 있도록 각 드롭 다운, 그것에 인수/명령을 할 수 있습니다 "하지만 그게 바로 내가 이드라는 표를 붙인 이유이다. Doing List <>와 Foreach가 가장 효율적이지는 않지만 if 문은 추악한 대량 문구에서 벗어납니다.