原创 C#中Linq的基礎操作

前言 Linq在C#中提供語言級查詢功能和高階函數 API,以便能夠編寫具有很高表達力度的聲明性代碼。使用Linq能夠讓我們的代碼更加簡潔。下面先來看一個問題:現在有一個數組,如下所示: int[] nums = { 8, 1,

原创 ArcEngine線分割面的實現方法

在一般的GIS數據編輯中,利用線分割面是常見的一項操作。很多同志不清楚如何在ArcEngine實現這一功能,其代碼寫得無比複雜。其實ArcEngine給我們提供了一個接口:IFeatureConstruction,利用這個接口可以

原创 ArcEngine創建平頭緩衝區的方法

好久沒寫ArcEngine了,今天有人問我怎麼在ArcEngine裏生成平頭緩衝區。這個問題其實很簡單,圖省事的話調用GP就能做,但對我個人來說,除非是到了萬不得已的情況下,否則我絕不會用GP來做。ArcEngine中有一個接口I

原创 ADO.NET新手上路教程

前言 利用ADO.NET連接數據庫進行相關操作可以說是每個.NET新手必須學習的一項內容。從學習的角度來看,我個人其實反對新手一開始就學Entity Framework之類的ORM框架,因爲Entity Framework本質上還

原创 快速上手C#中的Task編程

.NET4.0開始引入Task,它的出現大大簡化了異步編程的複雜度,相較於傳統的Thread和ThreadPool,Task更加容易控制和使用,下面就來看看它的具體用法。 1、一個簡單的串行程序 串行程序大家肯定不陌生,說白了就是

原创 WinForm中UI假死的解決方法

前言 WinForm中的UI假死其實是個老生常談的問題了,但最近還是很多人問我該如何解決,所以今天就來說明一下如何解決UI假死的問題。實驗程序界面如下圖所示: 方法一:async + await + Task 首先看下面一段代碼

原创 DevExpress構建多文檔界面

在DevExpress中,多文檔界面的構建需要用到XtraTabControl控件,如下圖所示: 1、屬性設置 首先設置選項卡可關閉,如下圖所示, 如果你希望首頁選項卡不關閉,則進行如下設置: 2、創建子窗體 多文檔的實現需

原创 ASP.NET結合Echarts展示後臺數據

Echarts功能強大,如果項目中需要根據後臺數據生成統計圖表,那麼Echarts絕對是不二選擇。下面就來介紹一下如何利用ASP.NET + Echarts來生成折線圖、柱狀圖、餅圖這三類基本的統計圖。首先在SqlServer中建

原创 jsPanel——與Bootstrap完美兼容的浮動面板解決方案

使用過EasyUI的同志應該很清楚,EasyUI裏的Window組件相當好用,如下圖所示: Bootstrap中並沒有類似的組件,取而代之的是使用模態框(Modal),效果如下圖所示: 我個人不是很喜歡模態框這種實現方式,因此

原创 NPOI的基礎操作

1、創建Excel using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; us

原创 ArcEngine字段屬性域的操作

首先來了解一下什麼是ArcGIS中的屬性域。假設現在要在文件裏地數據庫中新建一個道路要素類,其屬性字段如下圖所示: 其中,Name表示道路名稱,Width表示道路寬度,Type表示道路類型。按照一般常識,道路的寬度肯定是在一定範

原创 ArcEngine修改要素類字段別名

對於Geodatabase中的要素類,我們可以對它們的字段別名進行修改。下圖爲數據庫中某要素類的屬性表: 我們現在將Name修改爲Name_1,Code修改爲Code_1,代碼如下: using System; using Sy

原创 ArcEngine子類型字段的操作

先來了解一下什麼是ArcGIS中的子類型字段。新建一個要素類,名稱爲道路,其字段如下圖所示:其中Type爲長整型字段,用以標識道路的類別。 現在我們選擇該要素類,單擊右鍵,彈出界面後選擇子類型選項卡,如下圖所示:子類型字段選擇T

原创 ArcEngine根據屬性分割要素類的實現方法

在做數據處理時,我們經常遇到的一個問題就是分類問題,如下圖所示,現有一份中國各省、自治區、直轄市的shp文件,現在要求根據Name字段將該shp文件分割成多個shp文件,每個shp文件代表一個省、自治區或直轄市。 熟悉ArcGI

原创 一個簡單例子幫助你理解C#中的協變和逆變

本人一向不喜歡講太多理論,長篇大論的讓人煩躁。下面我們就通過一個簡單的小例子來快速理解協變和逆變。 類的繼承和派生 using System; using System.Collections.Generic; using Sys