C# XML LINQ后续
好的,我有上一个问题的结果,但我可以在另一个小问题上得到一些帮助 我得到的结果集如下所示:C# XML LINQ后续,c#,xml,linq,C#,Xml,Linq,好的,我有上一个问题的结果,但我可以在另一个小问题上得到一些帮助 我得到的结果集如下所示: [foo], [1, 1, 1, 1] [bar], [2] [baz], [3, 3, 3, 3] [buz], [4] [foo], [1, 1, 1, 1] [bar], [2, 2, 2, 2] [baz], [3, 3, 3, 3] [buz], [4, 4, 4, 4] 数据类型是一个KeyValuePair,我需要得到结果集(KeyValuePair的值部分),如下所示: [foo],
[foo], [1, 1, 1, 1]
[bar], [2]
[baz], [3, 3, 3, 3]
[buz], [4]
[foo], [1, 1, 1, 1]
[bar], [2, 2, 2, 2]
[baz], [3, 3, 3, 3]
[buz], [4, 4, 4, 4]
数据类型是一个KeyValuePair
,我需要得到结果集(KeyValuePair
的值部分),如下所示:
[foo], [1, 1, 1, 1]
[bar], [2]
[baz], [3, 3, 3, 3]
[buz], [4]
[foo], [1, 1, 1, 1]
[bar], [2, 2, 2, 2]
[baz], [3, 3, 3, 3]
[buz], [4, 4, 4, 4]
有没有办法使用LINQ、Lambda表达式或任何其他方法轻松实现这一点?是的,这些值是重复值。这里没有唯一性,只有必要的值的数量。谢谢你的帮助 您可以使用LINQ,这里的主要线索是,如果列表太小,则使用条件运算符来
Concat
剩余元素:
var max = data.Max(p => p.Value.Count);
var result =
data.Select(p => new KeyValuePair<string, List<string>>(
p.Key,
p.Value.Count == max
? p.Value
: p.Value.Concat(Enumerable.Repeat(p.Value.First(),
max - p.Value.Count))
.ToList())
);
var max=data.max(p=>p.Value.Count);
var结果=
选择(p=>newkeyvaluepair(
p、 钥匙,
p、 Value.Count==max
?p.值
:p.Value.Concat(可枚举。重复)(p.Value.First(),
最大值(p.Value.Count))
.ToList())
);
如果您想引用上一个问题,请至少提供一个链接。每个问题都应该是独立的。是的,你应该把这个问题当作一个全新的问题来组织。不要让人们仔细检查你的老问题,试图弄清楚你在说什么。要得到更好的答案,你需要展示你的能力code@SivaCharan这是一个老问题@谢尔盖贝雷佐夫斯基:这是一个老问题这真是太棒了,但我还有另一个条件要放弃。假设有两个不连续的重复集合序列。在上面的场景中,向该数组中再添加6位,从5开始,到10结束。我想让7到8重复4次,同时保持序列号的完整性。上述LINQ语句是否会继续适用于该场景?