2013-04-23 24 views
0

我正在使用一个通用列表,它正在与值重复。我只是想将不同的值添加到列表中。以下是我正在使用的代码。任何人可以帮助我如何避免重复到列表向通用列表中插入唯一值

foreach (Questionnaire_Response questionnaireResponse in Questionnaire_Response.FindWithQuery(query)) 
{ 
    if (questionnaireResponse.Response_Descr == response) 
    { 
     submitOrderResponseItems.RESP_KEY = questionnaireResponse.Response_Id; 
     submitOrderResponseItems.DESCR = questionnaireResponse.Response_Descr; 
     submitOrderResponseItems.UPDATED_DATE = currentDate; 
     submitOrderResponseItems.UPDATED_TIME = currentDateTime; 
     submitOrderResponse.Add(submitOrderResponseItems); 
    }         
} 
+1

代码在哪里? – 2013-04-23 11:51:48

+0

之前添加检查存在... List.Contains(val) – 2013-04-23 11:52:25

+0

嗨安东尼。我在添加之前检查过。但是,它将采用当前值并与现有值一起复制。例如,如果列表中有2个现有值意味着,则在下一次迭代中,它会将现有2和当前值重复为相同。因此,所有3个项目将显示相同的值 – JackSparrow 2013-04-23 11:59:42

回答

7

如果需要使用HashSet<T>,而不是和一个自定义IEqualityComparer<T>

+2

+1 - A(http://msdn.microsoft.com/en-gb/library/dd412070.aspx)可以使用[的SortedSet如果顺序很重要。 – keyboardP 2013-04-23 11:54:02

+1

微笑在你自己的“+1”,:) – David 2013-04-23 11:54:45

+0

@大卫这对答案... ...诚实:d – keyboardP 2013-04-23 11:55:54