2013-07-15 40 views
0

我有一個字符串(代碼)arraylist,我想控制一個字符串是否在此arraylist中重複。如果字符串是重複的,我想另一個代碼給arraylist。我如何控制一個ArrayList的重複值?

我的代碼:

private void btn_Create_Click(object sender, EventArgs e) 
{ 
    ArrayList list = new ArrayList(); 

    try 
    { 
     list = DoDeserialize(); 
    } 
    catch (Exception ex) 
    { 
     lbl_status.Text = ex.Message; 
    } 

    string code = GetCode(7); 

    code = "2 - " + code; 

    int test = list.IndexOf(code); 

    txt_Code.Text = code; 
    lbl_status.Text = "Code wurde erstellt"; 


    list.Add(code); 

    DoSerialize(list); 
} 
+0

你可以使用'List '?一個更好的選擇。只是說.. – nawfal

+0

您可以使用Java中的'List#contains()'來檢查內容是否已經可用,不確定C#! – NINCOMPOOP

+1

http://stackoverflow.com/questions/4564095/how-to-find-no-of-duplicate-values-in-arraylist –

回答

3

到位您list.add(code);添加這一點。該方法檢查項目是否已經在數組列表中。

if(!list.Contains(code)) 
{ 
    // The code does not already exist in the list, so add it 
    list.add(code); 
} else { 
    // The code already exists, do something here. 
} 

See here有關List<T>.Contains()方法的詳細信息。

+0

並且可能有一個'else'這裏也對嗎? OP表示他們想添加一個不同的代碼,如果它是重複的 - 或者至少我認爲**是他們的意思。 :D –

+0

@MichaelPerrenoud好點。我已經添加了其他分支,並通過評論來說明這一點。 – Scott

0

您也可以使用LINQ方法Distinct在填充列表後刪除任何重複項。