学写了一段LINQ

时间:2022-11-10 14:34:21

要写一段代码读入一个用空格分隔的几列的文件,程序中有多处类似的文件,所以想着有没有什么好点的办法。

井名       X坐标       Y坐标         深度

测试井1  634600    4116000    3456

井2        640000    4200000    3333

以前没学过LINQ,只知道它应该能够方便地读入这类数据,google了一阵,终于写出来了。

 var query = from line in File.ReadAllLines(wellListFile, Encoding.GetEncoding("GBK"))
.Skip() //第一行要略过
let fields = line.Split(new char[] { ' ', '\t', ',' },
StringSplitOptions.RemoveEmptyEntries)
select new Well
{
Name = fields[],
X = double.Parse(fields[]),
Y = double.Parse(fields[]),
Depth = double.Parse(fields[])
};
return query.ToArray<Well>();

而以前的代码是这样的:

<Well> wells = new List<Well>();
try
{
using (StreamReader r = new StreamReader(wellListFile))
{
string line;
while ((line = r.ReadLine()) != null)
{
string[] fields = line.Split(new char[] { ' ', '\t', ',' },
StringSplitOptions.RemoveEmptyEntries);
if (fields.Length < ) continue;
string name = fields[];
double x, y, depth;
if (!double.TryParse(fields[], out x)) continue;
if (!double.TryParse(fields[], out y)) continue;
if (!double.TryParse(fields[], out depth)) continue;
Well well = new Well(name, x, y, depth);
wells.Add(well);
}
}
}
catch (Exception)
{
//错误的行一概略过,第一行自然也略过了
}
return wells.ToArray();

学写了一段LINQ的更多相关文章

  1. 你必须学写 Python 装饰器的五个理由

    你必须学写Python装饰器的五个理由 ----装饰器能对你所写的代码产生极大的正面作用 作者:Aaron Maxwell,2016年5月5日 Python装饰器是很容易使用的.任何一个会写Pytho ...

  2. 跟我一起学写jQuery插件开发方法(转载)

    jQuery如此流行,各式各样的jQuery插件也是满天飞.你有没有想过把自己的一些常用的JS功能也写成jQuery插件呢?如果你的答案是肯定的,那么来吧!和我一起学写jQuery插件吧!     很 ...

  3. canvas知识03:学写一个字案例

    效果

  4. 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用

    请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框.程序可以判断出用 户点击的是“确认”还是“取消”. 解答: <HTML> <HEAD> <TI ...

  5. 一点一点学写Makefile&lpar;3&rpar;-增加第三方库和头文件

    我们在写代码的时候不一定都是有自己来完成,一个工程中会大量使用一些比较优秀的动态库.静态库等,我们在使用这些库完成所有的代码后,需要在编译的时候将这些库使用的头文件添加到我们的工程上,将他的库文件也添 ...

  6. 一点一点学写Makefile-1

    相信很多Linux开发者 都得自己来写Makefile,刚开始学习学写这个的时候都会碰到很多困难,我之前没有自己独立完成过Makefile,都是在公司已有的模板上添加.现在突然有一个很大的想法就是从零 ...

  7. 学写jQuery插件开发方法

    jQuery如此流行,各式各样的jQuery插件也是满天飞.你有没有想过把自己的一些常用的JS功能也写成jQuery插件呢?如果你的答案是肯定的,那么来吧!和我一起学写jQuery插件吧!   很多公 ...

  8. canvas学写一个字

    第一步:画一个米字格,先画一个矩形,再画中间的米字. <script> window.onload = function(){ var canvas = document.getEleme ...

  9. 我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

    业务背景 首先,业务需求是这样的,从第三方电商平台拉取所有订单,然后保存到公司自己的数据库,需要判断是否有物流信息,如果有物流信息,还需要再进行上传. 而第三方接口返回的数据是 JSON 格式的,其中 ...

随机推荐

  1. 『设计前沿』14款精致的国外 iOS7 图标设计示例

    每天都有大量的应用程序发布到 iOS App Store 上,在数量巨大的应用中想要引起用户的主要,首要的就是独特的图标设计.这篇文章收集了14款精致的国外 iOS7 图标设计示例,希望能带给你设计灵 ...

  2. 【iOS 初见】第一个简单的 iOS 应用

    本实例来自 <iOS编程(第4版)>,介绍如何编写一个简单的 iOS 应用. 功能为:在视图中显示一个问题,用户点击视图下方的按钮,可以显示相应的答案,用户点击上方的按钮,则会显示一个新的 ...

  3. jQuery内置函数 ready

    jQuery给我们提供了一些非常实用的函数 ready:加载函数 传统事件只能绑定一个函数 后面的函数会把前面的函数覆盖 js中用的是  window.onload = function(){}; j ...

  4. BootStrap table 传递搜索参数

    看bootStrap table文档不难发现它有一个queryparams属性,是向后台传递参数的,默认参数已有pageSize.pageIndex等,那么怎么传递自定义的参数呢?在网上找了好多也没有 ...

  5. Linux驱动基础:msm平台,modem等framework加载

    msm平台,AP和CP封装在一起,公用一块内存.所以AP需要负责把整个modem, TZ , rpm等binary拷贝到内存中以供modem等subsystem去运行.那AP这边是怎么分配这些内存,又 ...

  6. 2&period;4JAVA基础复习——JAVA语言的基础组成数组

    JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...

  7. python中迭代器和生成器的区别

    #!/usr/bin/python def power(values): for value in values: print "powing %s" % value yield ...

  8. &lbrack;STL&rsqb;&lbrack;C&plus;&plus;&rsqb;VECTOR

    参考:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个 ...

  9. OpenCL™ 2&period;0 – Pipes

    copy from http://developer.amd.com/community/blog/2014/10/31/opencl-2-0-pipes/ OpenCL™ 2.0 – Pipes I ...

  10. 洛谷P3252 &lbrack;JLOI2012&rsqb;树

    题目描述 在这个问题中,给定一个值S和一棵树.在树的每个节点有一个正整数,问有多少条路径的节点总和达到S.路径中节点的深度必须是升序的.假设节点1是根节点,根的深度是0,它的儿子节点的深度为1.路径不 ...