簡體   English   中英

如何從兩個列表中分組?

[英]How do I GroupBy from two Lists?

我有兩個IEnumerable,一個具有“必備”鍵基,另一個具有許多具有各種拼寫方式的鍵(相同的值,但包含轉義序列,大寫字母等)。 我想在第一個列表的每個鍵到與第二個列表中的字符串對應的所有鍵之間創建一個映射(謂詞是bool IsPossibleMatch(string a, string b)

所以基本上我想要一個IGrouping<string, IEnumerable<string>>因為那正是我要尋找的東西的結構。

我嘗試了各種版本的keys.GroupBy((x,y) => IsPossibleMatch(x, y))但是其中任何一個都無法正常工作。

現在我想知道:分組依據是否有可能? 還是我需要以其他方式手動執行此操作?

這是一個示例代碼:

var left = new string[] {
    "key1",
    "key2",
    "key3",
    "key4",
    "key5"
};
var right = new string[]
{
    "key1",
    "Key1",
    "KEy1",
    "KEY1",
    "KeY1",
    "kEY1",
    "kEy1",
    "key2",
    "Key2",
    "KEy2",
    "KEY2",
    "KeY2",
    "kEY2",
    "kEy2"
};
var output = left.GroupJoin(
    right,
    leftStr => leftStr.ToLower(),
    rightStr => rightStr.ToLower(),
    (x,y)=>(x,y)
);
foreach (var leftKey in output)
    Console.WriteLine(leftKey.x + "->" + string.Join(",", leftKey.y));

產生以下輸出:

key1->key1,Key1,KEy1,KEY1,KeY1,kEY1,kEy1
key2->key2,Key2,KEy2,KEY2,KeY2,kEY2,kEy2
key3->
key4->
key5->

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM