3

我有一个这样的数据表。

数据表

我想对它执行许多操作,比如

  • 有多少次是在阳光明媚的时候PLAY 'no'
  • 当 PLAY 是“是”时,WINDY 有多少次是“真的”

我应该使用什么数据结构?现在我有一个简单的数组,这将是一项需要控制的任务。

string[,] trainingData = new string[noOfRecords,5];
        using (TextReader reader = File.OpenText("input.txt"))
        {
            int i =0;
            string text = "";
            while ((text = reader.ReadLine()) != null)
            {
                string[] bits = text.Split(' ');
                for (int j = 0; j < noOfColumnsOfData; j++)
                {
                    trainingData[i, j] = bits[j];
                }
                i++;
            }
        } 
4

3 回答 3

3

为了扩大@Doan cuong 的答案,我会使用一个可枚举的对象列表。每个对象都可以调用:Record和集合可以调用Table。(表是 IEnumarable)。

这是一个简单的例子:

static void Main(string[] args)
        {
            Table table = new Table();
            int count1 = table.records.Where(r => r.Play == false && r.Outlook.ToLower() == "sunny").Count();
        }

        public class Record
        {
            public bool Play;
            public string Outlook;
        }


        public class Table
        {
            //This should be private and Table should be IEnumarable
            public List<Record> records = new List<Record>(); 

        }
于 2013-07-17T06:50:44.250 回答
1

创建一个类并将值写入属性。IE:

public class Weather
{
 public string Outlook {get;set;}
 ...
}

然后将它们存储到一个List<Weather>集合中(在循环期间)。就像已经说过的那样,您可以LINQ在其上运行查询。互联网上充满了如何使用的示例LINQ

于 2013-07-17T06:49:19.657 回答
1

这是一个非常不舒服的问题,因为它更多的是关于意见而不是一个有效的编程问题。很多程序员会这样或那样说。对于您显示的表格,使用数组没有问题,就像您对简单查询所做的那样,您提到了。对于更复杂的数据和查询,我建议您花时间和精力学习LINQ

于 2013-07-17T06:47:29.053 回答