【发布时间】:2015-11-16 15:13:18
【问题描述】:
这是我的问题。我有 2 个这样的数组。
string[] fruit1 = { "Apple", "Banana", "Orange", "Pear", "Strawberry", "Grape", "Kiwi" };
string[] fruit2 = { "Peach", "Nectarine", "Banana", "Cherry" };
我被要求创建第二个班级。添加“几个略有不同的属性”。然后使用 Linq 从第一个类中选择/从第一个类中创建一个排序集合,在第二个类中消除重复项(“香蕉”)。
在被告知我需要合并第二个类和 select/from 之前,这是我的工作。排序是作业的一部分。他们工作正常。这个程序运行良好。唯一的问题是,在我发送之后,我被告知了第二节课的全部内容。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MergeArray
{
class Program
{
static void Main(string[] args)
{
string[] fruit1 = { "Apple", "Banana", "Orange", "Pear", "Strawberry", "Grape", "Kiwi" };
string[] fruit2 = { "Peach", "Nectarine", "Banana", "Cherry" };
string[] fruit3 = new string[fruit1.Length + fruit2.Length];
string temp;
foreach (string i in fruit1)
{
for (int j = 0; j < fruit1.Length - 1; j++)
{
if (String.Compare(fruit1[j], fruit1[j + 1]) > 0)
{
temp = fruit1[j];
fruit1[j] = fruit1[j + 1];
fruit1[j + 1] = temp;
}
}
}
foreach (string i in fruit2)
{
for (int j = 0; j < fruit2.Length - 1; j++)
{
if (String.Compare(fruit2[j], fruit2[j + 1]) > 0)
{
temp = fruit2[j];
fruit2[j] = fruit2[j + 1];
fruit2[j + 1] = temp;
}
}
}
fruit1.CopyTo(fruit3, 0);
fruit2.CopyTo(fruit3, names1.Length);
Console.WriteLine(String.Join(Environment.NewLine, fruit3.Distinct().ToArray()));
Console.ReadLine();
}
}
}
所以我的问题是。我如何将前 2 个数组传递给外部类,然后我可以使用它们在外部类中创建构造函数(fruit3)?然后,返回新的构造函数以显示新的合并/排序构造函数(不重复)“Apple”、“Banana”、“Grape”、“Kiwi”、“Orange”、“Pear”、“Strawberry”、“樱桃”、“油桃”、“桃子”?
【问题讨论】:
-
你一直在谈论类,但我在你的代码中没有看到任何东西,除了 Program 类...在它因为不够清楚而被关闭之前快点整理一下。
-
对不起。该代码更像是我试图获得的输出的一个示例。我没有制作其他课程,因为我不知道如何将数组传递给新课程。如果我放一个,它只是空的。如果我的问题不清楚,我很抱歉。我只是在寻求帮助,以便能够将前两个数组传递到要定义的第二个类中。
-
寻求帮助的第一步是提出正确的问题。
-
@MihaiCaracostea 好的,请允许我澄清一下。再次,我很抱歉我的问题不清楚。我需要能够创建一个具有两个“略有不同的属性”的新类(这是给我的,这是我必须继续做的,对不起)。无论如何,在这个新类中,我需要能够使用 Linq select/from 从两个数组(fruit1 和fruit2)中创建一个集合。有人告诉我使用反射应该会有所帮助,但是在将数组传递给第二个(尚未定义的)类的情况下,我查找的所有内容并没有真正帮助我。然后将它们合并到集合中。
-
前 2 个数组(fruit1 和fruit2)需要在我需要制作的第二个类的范围之外定义。但我需要能够将它们的值传递给第二个类才能创建集合。数组需要单独排序(按照我的方式)。我实际上在原始问题中搞砸了(在我的编辑中澄清了)。它们分别排序,然后合并在一起,而不是对最终集合进行排序,这就是它需要的方式。我的主要问题是在第二堂课中进行所有合并。
标签: c# arrays linq inheritance collections