Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XML LINQ后续_C#_Xml_Linq - Fatal编程技术网

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语句是否会继续适用于该场景?