Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 如何提示用户从一个数组中选择两个元素并将它们组合起来?_C#_Arrays - Fatal编程技术网

C# 如何提示用户从一个数组中选择两个元素并将它们组合起来?

C# 如何提示用户从一个数组中选择两个元素并将它们组合起来?,c#,arrays,C#,Arrays,我有一个包含5个作业的jobArray[]。每项工作都包含描述、完成工作的时间和每项工作的小时工资 我必须提示用户输入两个他们想要合并的作业。合并后的工作将具有合并说明、hoursToComplete和基于所选两个工作计算的小时工资 在获取用户输入并将其与数组中的元素匹配并将其组合方面,我不确定如何从这里开始。有没有一种方法可以搜索数组以匹配用户输入的循环 下面是我的代码,combineJobs()模块是让用户输入他们想要组合的两个作业的地方 //combining jobs publi

我有一个包含5个作业的jobArray[]。每项工作都包含描述、完成工作的时间和每项工作的小时工资

我必须提示用户输入两个他们想要合并的作业。合并后的工作将具有合并说明、hoursToComplete和基于所选两个工作计算的小时工资

在获取用户输入并将其与数组中的元素匹配并将其组合方面,我不确定如何从这里开始。有没有一种方法可以搜索数组以匹配用户输入的循环

下面是我的代码,combineJobs()模块是让用户输入他们想要组合的两个作业的地方

//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中的作业对象。