C# 两个列表的连接<;字符串>;在C中#
我有两个不同长度的字符串列表C# 两个列表的连接<;字符串>;在C中#,c#,C#,我有两个不同长度的字符串列表 List <string> Mksnos={"Toyota", "Honda is Good", "Innova is very good" } List <string> GdsDscr={"Toyota is a very good brand and it is costly",
List <string> Mksnos={"Toyota",
"Honda is Good",
"Innova is very good" }
List <string> GdsDscr={"Toyota is a very good brand
and it is costly",
"The carmaker's flagship sedan is now here in its hybrid avatar. It is brought to... The Honda Accord Hybrid has been launched in India" }
List Mksnos={“丰田”,
“本田很好”,
“Innova非常好”}
列出GdsDscr={“丰田是一个非常好的品牌
而且成本很高“,
“这家汽车制造商的旗舰轿车现在在其混合动力头像中亮相。它被带到了……本田雅阁混合动力车已经在印度上市”}
这里有我想要得到的结果,有什么建议吗?如果两个列表的索引相同,那么您可以执行以下操作:
static void Main(string[] args)
{
List<string> Mksnos = new List<string>()
{
"Toyota",
"Honda is Good",
"Innova is very good"
};
List<string> GdsDscr = new List<string>()
{
"Toyota is a very good brand and it is costly",
"The carmaker's flagship sedan is now here in its hybrid avatar. It is brought to... The Honda Accord Hybrid has been launched in India"
};
var joinedLists = new Dictionary<string, string>();
for (int i = 0; i < Mksnos.Count(); i++)
{
var nksnosValue = Mksnos[i];
var gdsDscr = GdsDscr.Count() > i ? GdsDscr[i] : string.Empty;
joinedLists.Add(nksnosValue, gdsDscr);
}
foreach (var joined in joinedLists)
{
Console.WriteLine($"{joined.Key}: {joined.Value}");
}
Console.ReadKey();
}
static void Main(字符串[]args)
{
列表Mksnos=新列表()
{
“丰田”,
“本田很好”,
“Innova非常好”
};
List GdsDscr=新列表()
{
“丰田是一个非常好的品牌,而且价格昂贵”,
“这家汽车制造商的旗舰轿车现在以其混合动力头像出现在这里。它被带到了……本田雅阁混合动力车已经在印度推出。”
};
var joinedLists=新字典();
对于(int i=0;ii?gdsDscr[i]:string.Empty;
添加(nksnosValue,gdsDscr);
}
foreach(加入JoinedList的变量)
{
WriteLine($“{joined.Key}:{joined.Value}”);
}
Console.ReadKey();
}
Zip Linq函数基本上可以准确地实现您所追求的目标,尽管它的输出大小可以达到最小可枚举的大小
但是,我们可以这样填充第二个列表:
using System;
using System.Linq;
using System.Collections.Generic;
List<string> Mksnos= { "Toyota", "Honda is Good", "Innova is very good" };
List<string> GdsDscr= { "Toyota is a very good brand and it is costly",
"The carmaker's flagship sedan is now here in its hybrid avatar. It is brought to... The Honda Accord Hybrid has been launched in India" };
var numberOfMissingValues = Math.Max(Mksnos.Count - GdsDscr.Count, 0);
var paddedGdsDscr = GdsDscr.Concat(Enumerable.Range(0, numberOfMissingValues).Select(i => " ")).ToList();
var lines = Mksnos.Zip(paddedGdsDscr, (make, comment) => $"{make}: {comment}");
foreach (var line in lines)
{
Console.WriteLine(line);
}
Console.ReadKey();
很明显,如果没有更详细的规范,如何处理不匹配的列表大小是无法回答的问题 把你的问题读几遍……尽量不要填空。如果你甚至都不知道你在问什么,你希望我们如何回答你的问题?你已经给了我们要求,但没有告诉我们你做了什么来解决它。找到两个列表中较大的一个。使用
for
循环遍历列表。建立一个新的列表或任何你的输出应该在其中的结构。找出如何避免索引越界异常。当你被困在其中一个台阶上时回来。我已经试过很多次了。这可不像你们这么容易say@David我已经把我的问题读得更好了,你试着understand@user1716097您似乎误解了堆栈溢出的工作原理。我试图理解一个坏问题的义务远不如你使一个坏问题易于理解的义务那么大。毕竟,你是在寻求社区的帮助,而不是反过来。到目前为止,你还没有表现出任何努力,D Stanley给了你一些很好的建议。你应该拿着它。谢谢你的快速回答,但是清单是不同的lengths@user1716097我以为你会抱怨这个答案没有为你打印边框:)不,不,不,非常感谢。但是如果它包含很多列表而不是两个,该怎么办
var comments = firstComments.Zip(secondComments, (b, c) => $"{b} - {c}")
var outLines = makes.Zip(comments, (make, comment) => $"{make}: {comment}");