3 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以獲得重復(fù)項(xiàng)的列表,如下所示:
var myList = uData.GroupBy(l => l.Ouput) .SelectMany(g => g.GroupBy(x => x.Input).Where(x => x.Count() > 1)) .SelectMany(x => x);
按輸出分組以獲得一系列相關(guān)項(xiàng)目
Output
用于
SelectMany
扁平化按輸入分組的結(jié)果,其中有重復(fù)項(xiàng)用于
SelectMany
展平為單個(gè)IEnumerable<Data>
否則,如果您只想知道是否有基于上述標(biāo)準(zhǔn)的重復(fù)項(xiàng),那么您可以使用Any
var anyDuplicates = uData.GroupBy(l => l.Ouput) .Any(g => g.GroupBy(x => x.Input).Any(x => x.Count() > 1));

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果我正確理解您的問題,您不想搜索特定輸出,而是查找所有重復(fù)的輸出和輸入值。您可以通過對(duì)組合進(jìn)行分組并過濾具有多個(gè)條目的組來做到這一點(diǎn):
var duplicates = uData.GroupBy(d=>new{d.Input,d.Output}).Where(g=>g.Count() > 1)
對(duì)于您的示例,上面返回(可枚舉)一個(gè)組,其鍵為 {Output: "Output1", Input: "7,8}。(該組本身包含具有該組合的所有元素)

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用查找,這將創(chuàng)建一個(gè)對(duì)象,您可以使用您指定的鍵進(jìn)行迭代:
public class Program
{
public static void Main(string[] args)
{
List<data> myList = new List<data>();
myList.Add(new data("output1", "1,5"));
myList.Add(new data("output2", "1,6"));
myList.Add(new data("output1", "1,5"));
myList.Add(new data("output1", "2,0"));
ILookup<string, string> myLookup = myList.ToLookup(d => d.output, d => d.input);
foreach (IGrouping<string, string> items in myLookup)
{
Console.WriteLine("Output : " + items.Key);
foreach (string input in items)
{
Console.WriteLine("-- Input value is " + input);
}
}
}
}
public class data
{
public string output;
public string input;
public data(string output, string input)
{
this.output = output;
this.input = input;
}
}
輸出將如下所示:
輸出 : output1
-- 輸入值為 1,5
-- 輸入值為 1,5
-- 輸入值為 2,0
輸出 : output2
-- 輸入值為 1,6
然后您可以檢查任何兩個(gè)輸入值是否相同。
- 3 回答
- 0 關(guān)注
- 285 瀏覽
添加回答
舉報(bào)