【问题标题】:How to get the data results to IEnumerable?如何将数据结果获取到 IEnumerable?
【发布时间】:2017-07-19 19:12:11
【问题描述】:

我可能应该先说我在 mvc 编码方面相对较新

我有一个包含名称、地址、纬度和经度值的数据表。我需要将 lat 和 long 值输入到 mvc 5 中的控制器中(大约有 10 条记录)并使用这些记录。

我知道最好的方法可能是IEnumerable,但我不知道如何将数据库中的值获取到IEnumerable(或列出哪个更好)

这是最好的方法吗?如果是这样,有人可以用一些示例代码或好的教程为我指明正确的方向

到目前为止,我想出的是这样的:

using (var context = new dbContext())
{
    foreach (var loc in context.Locations)
    {
        var locLat = loc.Lat;
        var locLng= loc.Long;
    }
}

【问题讨论】:

  • context.Locations 一个集合。你可以使用它。
  • 那么我如何将它添加到可枚举或列表中?那就是我卡住的地方。感谢您的帮助
  • 一个IEnumerable<T>。你不需要做任何事情。但是了解 LINQ。
  • 你真的想用你的Locations做什么?
  • 我正在尝试将它们与其他位置进行比较以了解它们之间的距离。我已经用另一种方法写了,所以我会把它们传递给那个方法

标签: c# asp.net-mvc


【解决方案1】:

不要执行 foreach 循环,只需使用以下内容:

var coordinates = context.Locations
                         .Select(loc => new { Lat = loc.Lat, Lng = loc.Long })
                         .ToList();

coordinates 将是一个坐标对象列表(Lat、Lng),您可以对其进行迭代或做任何您想做的事情。

【讨论】:

  • 我认为这是我需要的,我将如何从列表中获取值?
  • 一旦你有了一个列表,你可以像对待任何旧列表一样对待它。 coordinates.First().Lat
  • 好的,非常感谢 Joe -- 那么您只需使用 for 语句遍历列表?
【解决方案2】:

试试这个


using (var context = new dbContext())
 {
       var newList = (from record in context.Locations
                  select new { lat = record.lat, log = record.log}).ToList();

 }

Linq select to new object

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    相关资源
    最近更新 更多