【问题标题】:Insert data from a calculation into a list that is sorted by value将计算中的数据插入按值排序的列表中
【发布时间】:2015-11-10 17:57:09
【问题描述】:

我正在从数据库中的数据进行一些 c# .net 计算,这会产生几个字符串字段和一个具有数字的 int 字段 (starLength)。

最终我想查看按此 int 字段 (starLength) 排序的前 100 条记录的结果。

我正在尝试做的事情:在执行计算时,我想开始将此数据插入到某种数据类型中,如果下一条记录适合 starLength 的范围并且在 100 条记录之内,那么我想添加该记录.

我尝试了什么:我创建了一个 Stars 类型的类,它具有各种字符串字段和 int 字段。当我遍历计算产生的数据时,我将一条星记录添加到列表中,然后对它们进行排序。但是,这会将每个结果插入到超过百万条记录的列表中。我只关心按 starLength 排序的前 100 条记录。

关于如何执行我的计算的任何建议,检查它是否在前 100 个starLength 字段中,然后才插入记录。

编辑:添加一些代码来显示我所拥有的和问题

    public class Stars
    {
         string a;
         string b;
         string c;
         int starLength;

         public Stars (_a,_b,_c,_sLength)
         {
            a=_a;
            b=_b;
            c=_c;
            starLength=_sLength
         }
    }

//main
    List<Stars> myStars = new List<Stars>();

   //doing math here and adding records
   myStars.Add(a,b,c,sl);

^基本上是我所拥有的。但是当我填写 myStars 列表时,我想确保 starLength 在前 100 个 starLength 内

【问题讨论】:

标签: c# .net linq list sorting


【解决方案1】:

我不知道您是如何从数据库中获取这些数据的,但我假设您可以根据需要将其作为列表获取。无论如何,LINQ 似乎都是最好的选择。

var results = yourListFromDataBase.Where(s => s.yourIntValue == <your criteria>).Take(100);

如果您想稍微整理一下,您甚至可以在其中添加 OrderBy。

您确实也提到了进行一些计算,所以我并不完全肯定这对您是否实用。

【讨论】:

  • 添加了一些代码来显示我目前正在做的事情,我走上了最终使用 linq orderby 对数百万条记录进行排序的路径,但我认为在输入时进行排序要容易得多,所以如果数据不在我当前的最小-最大范围内,我基本上会丢弃数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多