c# 怎么用foreach 将两个字符串数组合并?

作者&投稿:叶陆 (若有异议请与网页底部的电邮联系)
各路大神,求解:C#用键盘输入两个字符串数组,将他们合并然后排序~

class Program
{
public static void Main(String[] args)
{
Console.WriteLine("请输入两个字符串");
string a = Console.ReadLine();
string b = Console.ReadLine();
char []c =sort(a.ToCharArray());
char [] d=sort(b.ToCharArray());
foreach (char f in c)
Console.Write(f);
Console.WriteLine();
foreach (char g in d)
Console.Write(g);
Console.WriteLine();
char[] e = new char[c.Length+d.Length];
int j = 0, i = 0,n=0;
while (n < c.Length + d.Length)
{
if (d.Length == j)
{
e[n] = c[i];
n++;
i++;
continue;
}
if (c.Length == i)
{
e[n] = d[j];
n++;
j++;
continue;
}
if (c[i] < d[j])
{
e[n] = c[i];
n++;
i++;
}else if(c[i] >= d[j])
{
e[n] = d[j];
n++;
j++;
}
}
foreach (char f in e)
Console.Write("{0,-2}",f);
Console.ReadKey();
}
public static char [] sort(char [] a)
{
bool flag = true;
char temp;
for (int i = 0; i < a.Length-1; i++)
{
for (int j = 0; j < a.Length - 1 - i; j++)
{
if (a[j] >= a[j+1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
flag = false;
}

}
if (flag)
break;
}
return a;
}
}

给一个最傻的方法,也是最好理解的
Console.WriteLine("输入第一个数组,元素间用逗号隔开"); // aaaa,bbb,cc string input1 = Console.ReadLine(); Console.WriteLine("输入第二个数据,元素间用逗号隔开"); string input2 = Console.ReadLine(); //自己做校验,我这省略了 string[] array1 = input1.Split(','); string[] array2 = input2.Split(','); List list = new List(); foreach(string element in array1) { list.Add(element); } foreach (string element in array2) { list.Add(element); } list = list.OrderBy(x=>x).ToList(); //正序排列 //自己输出吧 Console.ReadKey();

软糖来回答吧,合并string数组方法有很多种。

推荐使用linq语句,一行搞定

❶ 使用IEnumerable.Zip()方法

string r = string.Join("
", AString.Zip(BString, (a, b) => a + ":" + b));

❷ 使用IEnumerable.Select()方法

string r = string.Join("
", AString.Select((a, idx) => $"{a}:{BString[idx]}"));  

❸ 使用IEnumerable.Range()和Select()方法

string r = string.Join("
", Enumerable.Range(0, AString.Count).Select(i => $"{AString[i]}:{BString[i]}"));

最后使用  Console.Write(r);  输出结果就行。

❹ 通过for循环实现

StringBuilder str = new StringBuilder();

for(int i=0; i< AString.count; i++)

{

str.AppendFormat("{0}:{1}
", AString[i], BString[i]);

}

最后使用 Console.Write(str.ToString());输出结果就行。



这个不能用foreach吧,

换成for 试试:
for(int i=0; i==AString.Count(); i++)
{
MessageBox.Show(AString[i].NAME + ":" + BString[i].SAY);
}

List 是集合,不是数组,合并, Asting.Add(BString),不换行,就别加\n

这个例子用foreach不合适吧,如果有个人连续讲了三句话,这样foreach不就对应错了吗


兖州市15727675957: c# 怎么用foreach 将两个字符串数组合并? -
征尚氯氟: 软糖来回答吧,合并string数组方法有很多种.推荐使用linq语句,一行搞定 ❶ 使用IEnumerable.Zip()方法 string r = string.Join("\r\n", AString.Zip(BString, (a, b) => a + ":" + b)); ❷ 使用IEnumerable.Select()方法 string r = string.Join("\r\...

兖州市15727675957: C#中的foreach 怎么用啊 -
征尚氯氟: foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成.in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素.该循环的运行过程如下:每一次循环时,从集合中取出一个新的元素...

兖州市15727675957: c#中如何使用foreach语句? -
征尚氯氟: foreach(类型 任意变量名 in 此类型集合) {//处理任意变量名 }

兖州市15727675957: foreach的用法c语言和c# -
征尚氯氟: 1、C#里面才有foreach用法,C语言中只有for语句. 2、C#中 foreach 用法: foreach(Type t in arrys){ // 调用foreach语句 //循环体内自定义操作 } //Type:需要遍历每一个的对象的类型 //t:每一个对象 //arrays:需要遍历的对象数组

兖州市15727675957: C#怎样使一个函数有两个返回值 -
征尚氯氟: 两个返回值都是int[]类型,而且长度还不一样 可以这样做,返回值类型为 List<int[]> 泛型集合 在方法里面你先把两个int[] a=new int[3];int[] b=new int[5]; 加到下面的泛型集合中去 List<int[]> list=new List<int[]>(); list.add(a); list.add(b); return list; 用的时候用foreach循环遍历

兖州市15727675957: c#中怎么用foreach实现二维数组的显示输出?? -
征尚氯氟: foreach(var i1 in list1) { foreach(var i2 in i1) { Console.write(i2+'\t'); } Console.Writeline(""); } 这样就行了吧

兖州市15727675957: c# foreach可以将里面的两个值进行比较吗 -
征尚氯氟: 问题具体点...

兖州市15727675957: 请问C#中foreach的嵌套怎么用? -
征尚氯氟: 都差不多的,只是语法不同,和参数变了而以,想嵌套也是一样的嵌套方法. 这例子就可以充分的说明这个问题.using System; using System.Collections.Generic; using System.Text;namespace ConsoleApplication1 {class Program{/// <...

兖州市15727675957: C#如何用foreach给string类型的字符串中单个字符换成另外一个字符.
征尚氯氟: 推荐用StringBuilder ,这种类型可以直接给单个字符赋值 例:StringBuilder s = new StringBuilder("abcdefg");s[0]='p'; String方法可以,就是效率不高 //[方法一] string str = "abcdefg"; foreach (char var in str) { int index = str.IndexOf(var); if (...

兖州市15727675957: C#如何反序列化多个对象 -
征尚氯氟: 你可以通过将两个值类型封装成对象的属性,并标记该对象为可序列化的,然后对该对象的集合进行序列化,然后取的时候反序列化该对象集合,这样不是更方便吗.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网