C# 如何提示用户从一个数组中选择两个元素并将它们组合起来?
我有一个包含5个作业的jobArray[]。每项工作都包含描述、完成工作的时间和每项工作的小时工资 我必须提示用户输入两个他们想要合并的作业。合并后的工作将具有合并说明、hoursToComplete和基于所选两个工作计算的小时工资 在获取用户输入并将其与数组中的元素匹配并将其组合方面,我不确定如何从这里开始。有没有一种方法可以搜索数组以匹配用户输入的循环 下面是我的代码,combineJobs()模块是让用户输入他们想要组合的两个作业的地方C# 如何提示用户从一个数组中选择两个元素并将它们组合起来?,c#,arrays,C#,Arrays,我有一个包含5个作业的jobArray[]。每项工作都包含描述、完成工作的时间和每项工作的小时工资 我必须提示用户输入两个他们想要合并的作业。合并后的工作将具有合并说明、hoursToComplete和基于所选两个工作计算的小时工资 在获取用户输入并将其与数组中的元素匹配并将其组合方面,我不确定如何从这里开始。有没有一种方法可以搜索数组以匹配用户输入的循环 下面是我的代码,combineJobs()模块是让用户输入他们想要组合的两个作业的地方 //combining jobs publi
//combining jobs
public static void CombineJobs()
{
string input1, input2;
Console.WriteLine("Select 2 jobs from the array and combine them.");
Console.WriteLine(" ");
//printing out array elements
for (int i = 0; i < jobArray.Length; i++)
{
Console.WriteLine("Job " + i);
}
Console.WriteLine(" ");
Console.WriteLine("Enter the first index");
input1 = Console.ReadLine();
Console.WriteLine("Enter the second index");
input2 = Console.ReadLine();
}
}
}
//合并作业
公共静态void组合obs()
{
字符串input1,input2;
WriteLine(“从数组中选择2个作业并将它们组合起来”);
控制台。写线(“”);
//打印出数组元素
for(int i=0;i
在combineJobs()模块中,我打印出数组索引供用户选择。这也是我第二节课的一部分
class Job : IComparable<Job>
{
public string Description { get; set; }
public int hoursToComplete { get; set; }
public double hourlyRate { get; set; }
public double totalFee { get; set; }
public Job(string description,
int hours,
double hourRate,
double fee)
{
Description = description;
hoursToComplete = hoursToComplete;
hourlyRate = hourlyRate;
totalFee = totalFee;
}
public Job()
{
// TODO: Complete member initialization
}
public static Job operator +(Job first, Job second)
{
String newDescription = first.Description + " and " + second.Description;
int newHoursToComplete = first.hoursToComplete + second.hoursToComplete;
double newHourlyRate = first.hourlyRate + second.hourlyRate / 2;
double newTotalFee = first.totalFee + second.totalFee;
return (new Job(newDescription, newHoursToComplete, newHourlyRate, newTotalFee));
}
类作业:i可比较
{
公共字符串说明{get;set;}
公共整数小时完成{get;set;}
公共双小时速率{get;set;}
公共双总费用{get;set;}
公共职务(字符串描述,
整小时,
双倍小时,
双倍费用)
{
描述=描述;
hoursToComplete=hoursToComplete;
hourlyRate=hourlyRate;
totalFee=totalFee;
}
公职()
{
//TODO:完成成员初始化
}
公共静态作业操作符+(作业第一,作业第二)
{
字符串newDescription=first.Description+”和“+second.Description;
int newHoursToComplete=first.hoursToComplete+second.hoursToComplete;
double newHourlyRate=first.hourlyRate+second.hourlyRate/2;
double newTotalFee=first.totalFee+second.totalFee;
返回(新工作(新描述、新完成时间、新返回时间、新返回时间);
}
很抱歉,如果这太多,我们将非常感谢您的帮助。第一件事是首先。您需要将作业输出到控制台,以便用户能够知道他们想要选择什么。您可能应该在作业类中创建一个显示方法,以用户友好、可读的格式显示作业的属性。我已经创建了这个方法,应该吗我在最初的帖子中包含了它?为了完整性,您可能应该这样做。但是假设您已经完成了,为什么不使用不同于CombineJobs的方法来循环作业数组?可能是Main方法或Main调用的另一个方法。然后,提示用户输入他们想要合并的两个作业的索引。您可以通过提示两次,提示一次并要求输入一个空格,等等。然后,将这两个数字传递给CombineJobs方法。我添加了代码,因此它会提示两次,但不确定如何在数组中循环。如果用户选择了两个索引,则无需再循环。您可以使用g收到的输入。第一件事是第一件事。您需要将作业输出到控制台,以便用户知道他们想要选择什么。您可能应该在作业类中创建一个显示方法,该方法以用户友好、可读的格式显示作业的属性。我已经创建了该方法,是否应该将其包含在原始帖子中?对于co简单来说,您可能应该这样做。但是假设您已经完成了,为什么不使用不同于CombineJobs的方法来循环作业数组?可能是Main方法或Main调用的另一个方法。然后,提示用户输入他们想要合并的两个作业的索引。您可以通过两次提示、一次提示和另一次提示来完成此操作k以空格等形式输入。然后,将这两个数字传递给CombineJobs方法。我添加了代码,因此它会提示两次,但不确定如何在数组中循环。如果用户选择了两个索引,则无需再循环。您可以使用收到的输入访问JobArray中的作业对象。