2017-07-17 79 views
-2

我有一个foreach循环返回是这样的:去重复每个循环C#

value 1 
value 1 
value 1 
value 2 
value 2 
value 2 
value 2 

我需要获得该名单,但只有第一种类型的。所以,

value 1 
value 2 

下面是我的代码。

<div> 
    @foreach (var publishedVideo in allVideos) 
    { 
     <p>@publishedVideo.GetPropertyValue("segment")</p> 
    } 
</div> 

如何取消重复列表?

+3

'allVideos.Distinct()'也许? (如果你的视频适当地实现了平等......) –

+1

'为每个循环取消重复c#[复制]'我喜欢这个标题。 – Flater

+0

@Flater在苏联俄罗斯,有关重复的问题与您重复。 – silkfire

回答

2

假设你的类没有实现一个相等比较(因此Distinct将无法​​正常工作),你可以这样做:

<div> 
    @{ 
     var nonDuplicatedVideos = allVideos. 
      .Select(x => x.GetPropertyValue("segment")) 
      .Distinct(); 
    } 
    @foreach (var publishedVideo in nonDuplicatedVideos) 
    { 
     <p>@publishedVideo</p> 
    } 
</div> 
+0

感谢Camilo回答这个问题。 @mjwills - 欢迎将问题标记为重复。虽然它是重复的,但显然这两个答案是不同的。而'重复'的答案并没有解决我的问题。布拉沃。再次感谢Camilo –

+1

仅供参考,您不需要'ToList'。 – juharr

+0

@juharr是的,我知道,我只是发现ToList更具可读性。 –