Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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_Compare - Fatal编程技术网

如何比较C#中的这些数组,并返回相等的值

如何比较C#中的这些数组,并返回相等的值,c#,arrays,compare,C#,Arrays,Compare,我正在尝试用C#语言制作一个程序,可以根据不同人群的可用性来安排会议。目前,它将获取用户数据并将其放入文本文件中,示例行将显示“Name 01/01/2000 11”,并且将有多行。我想我已经设法让它读入一个数组,尽管我不确定如何测试它(例如,将数组输出到标签?),现在需要比较日期和时间,并输出相等的日期和时间。以下是完成此操作的一些代码,这些代码似乎执行得很好,并且确实更新了文件: System.IO.StreamWriter file = new System.IO.StreamWr

我正在尝试用C#语言制作一个程序,可以根据不同人群的可用性来安排会议。目前,它将获取用户数据并将其放入文本文件中,示例行将显示“Name 01/01/2000 11”,并且将有多行。我想我已经设法让它读入一个数组,尽管我不确定如何测试它(例如,将数组输出到标签?),现在需要比较日期和时间,并输出相等的日期和时间。以下是完成此操作的一些代码,这些代码似乎执行得很好,并且确实更新了文件:

    System.IO.StreamWriter file = new System.IO.StreamWriter(@"Times.txt", true);
    file.WriteLine(lineForFile);
    file.Close();
    string[] lines = File.ReadAllLines(@"Times.txt");
    string[][] jaggedArray = lines.Select(line => line.Split(' ').ToArray()).ToArray();

非常感谢您的帮助

有几种方法可以解决这个问题。但我建议你引入一些打字类来帮助你。可以从一个名为appointment的简单类开始:

public class Appointment
{

     private Appointment(string name, DateTime app, int id)
     {
         Name = name;
         Time = app;
         Id = id;
     }

     public string Name {get ; private set;}
     public DateTime Time{get; private set;}
     public int Id{get ;private set;} // Not sure if the 11 was an id or the time in your example.

     public static Create(string name, DateTime app, int id)
     {
        return new Appointment(name,app, id);
     } 
}
该类将帮助您处理数据。因此,现在您可以从数据层获取约会列表,并从分隔字符串列表中创建每个约会的新实例(如果必须使用文件存储,可以考虑使用空格以外的内容来分隔数据(可能是管道或逗号)。另一种选择是使用db或xml格式

   IList<Appointment> appointemts = File.ReadAllLines(@"Times.txt").Select(v => {var row = v.Split(' '); return  Appointment.Create(row[0],DateTime.parse(row[1]),int.parse(row[2]);}).ToList();
现在,您有了一个字典,其中包含约会时间的键和一个值,该值是当天/时间的约会列表。通过该字典,您可以执行一个简单的查询来识别冲突,这基本上是任何具有多个约会的列表时间

var conflicts = appointmentsByDate.Where(a => a.Appointments.Count > 1);

首先,你不需要jaggedArray。当你执行
line.Split(“”)
时,你将返回一个字符串[]。而且你不需要
ToArray()).ToArray()
在下面的
C#Stackoverflow文件上进行快速的谷歌搜索。ReadAllLines
你可以看到许多关于如何使用
string.Split()执行此操作的示例
方法
var conflicts = appointmentsByDate.Where(a => a.Appointments.Count > 1);