有没有办法在创建时(在方法内部)引用List (IEnumerable)
方法创建的Select
?
我有一个如下所示的词典:
Dictionary<char, char> d = new Dictionary<char, char>()
{
{'a', 'b'},
{'b', 'a'},
{'c', 'd'},
{'d', 'c'},
//...
};
它通过string.Join("", d.Select(...))
转换为字符串。
字典(ab和ba)中的重复值被整理出来。
我试过这个:
//Checks for an earlier swapped duplicate........If not, select it
d.Select(x => !enumerable.Contains(x.Value.ToString() + x.Key.ToString()) ? x.Key.ToString() + x.Value.ToString() : string.Empty);
这里,“enumerable”是指由Select方法创建的列表,但我还没有找到方法。
预期的最终结果应如下所示:"abcd"
而非"abbacddc"
,只需加入键和值即可。
我可以用for循环来解决这个问题,但这需要额外的代码..
答案 0 :(得分:3)
不,但您可以使用Aggregate
和Distinct
:
var enumerable = d.Aggregate(string.Empty,
(acc, kv) => string.Concat(acc,
kv.Key,
kv.Value))
.Distinct();
enumerable
将是IEnumerable<char>
,具有所需的输出。