枚举所有组合的最佳方式

Sha*_*eKm 0 .net c#

假设我按任何顺序列出以下列表:

S1 
R1 
R2 
S2
S3
Run Code Online (Sandbox Code Playgroud)

我需要创建一个LIST,其中每个"S"包含每个"R"组合

输出:

S1 => R1
S1 => R2
S2 => R1
S2 => R2
S3 => R1
S3 => R2
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?谢谢

Jac*_*cob 5

尝试:

var byPrefix = list.GroupBy(i => i.First()).ToDictionary(g => g.Key, g => g);
var result = 
    from s in byPrefix['S']
    from r in byPrefix['R']
    select new { s, r };
Run Code Online (Sandbox Code Playgroud)