C#資料結構-線性表

理論基礎:線性表是最簡單、最基本、最常用的資料結構。線性表是線性結構的抽象(Abstract),線性結構的特點是結構中的資料元素之間存在一對一的線性關係。這種一對一的關係指的是資料元素之間的位置關係,即:(1)除第一個位置的資料元素外,其它資料元素位置的前面都只有一個資料元素;(2)除最後一個位置的資料元素外,其它資料元素位置的後面都只有一個元素。也就是說,資料元素是一個接一個的排列。因此,可以把線性表想象為一種資料元素序列的資料結構。線性表(List)是由n(n≥0)個相同類型的資料元素

C#操作xml之xpath文法

以前也發過關於.net中操作XML的文章,但不是很詳細,現在我將詳細介紹一下c#如何操作xml檔案,正如學習操作資料庫要學習SQL語言一樣,在學習操作xml與語言之前,我們要先熟悉一下xml的“sql”語句xpath。由於本系列文章的目的不在於詳細介紹xpath文法所以,我借用了園子裡leves的文章來簡單介紹一下xpath文法:XPath 是XML的查詢語言,和SQL的角色很類似。以下面XML為例,介紹XPath 的文法。<?xml version="1

採用C#泛型實現資料庫之間的切換

最近做的一個項目,我最開始選用的是 MySql 5.0 資料庫,項目提交之後,對方要求換成 MS SQLServer 2000,還好資料層操作基本採用的是標準的SQL語句,也未使用預存程序,於是將原有的資料接入層代碼改寫成泛型類,只改了不到一百行代碼,具體的SQL動作陳述式一句未動,便實現了資料庫之間的切換。下面簡述:資料庫不是很複雜,因此我採用了兩個類:(1) DataProvider 泛型類public class DataProvider<ConnType, CmdType> 

C#中方法參數的四種類型

C#中方法的參數有四種類型:-值參數:不含任何修飾符。方法中的形參是實參的一份拷貝,形參的改變不會影響到記憶體中實參的的值,實參是安全的。-引用參數:以ref修飾符聲明。傳遞的參數實際上是實參的指標,所以在方法中的操作都是直接對實參進行的,而不是複製一個值;可以利用這個方式在方法調用時雙向傳遞參數;為了以ref方式使用參數,必須在方法聲明和方法調用中都明確地指定ref關鍵字,並且實參變數在傳遞給方法前必須進行初始化。-輸出參數:以out修飾符聲明。和ref類似,它也是直接對實參進行操作。在方法聲

C# 3.0入門系列(十)-之Join操作

本節講join操作。我們知道,T-sql中,有三種最基本的join,inner join, left join, 和right join。 而dlinq並不支援right join。道理很簡單,right join以right表為基礎,left表中沒有對應記錄的,將以null值填充。而dlinq以left表做為主表建立對象。如果一個對象為null,你如何擷取它的其他的屬性呢?在C# 3.0入門系列(四)-之Select操作一文中,我們提到了query

C# 3.0入門系列(九)-之GroupBy操作

有朋友反饋說我提供的sample不能編譯。大概是版本的問題,可以到http://msdn2.microsoft.com/en-us/bb330936.aspx下載for beta1的版本。本節接著講groupby。上一節,我們講了如何理解groupby返回的結果。本節會延這個思路闡述下去。先來看下面的例子GroupBy操作中Select的匿名類var q = from p in db.Productsgroup p by p.CategoryID into gselect new {

C# 3.0入門系列(八)-之GroupBy操作

換一種寫作風格。本節講groupby操作。在所有的Linq To Sql操作中,GroupBy是最難理解的一個。因為,這裡和Sql的出入較大。而Group真的就能返回n多組。開啟vs,建立一工程,加入System.Data.Linq.dll的引用。把northwind資料庫做個映射,添加到工程裡。建立一Northwind類的對象。在這裡呢,我們要做分組統計,我們要先明白什麼是分組。在我們開始設計product表時,我們欲留了一列叫做CategoryID。

C# 3.0入門系列(七)--之OR工具介紹(上)

……不得不再次給關注dlinq的朋友道歉了。好久都沒有更新blog了。因為工作的變動,還要趕期限,沒有時間關注這裡了。先發布一則訊息。Orcas Beta1, 這個才是beta1,可以到http://www.microsoft.com/downloads/details.aspx?FamilyID=f10fb5df-e369-4db4-b9a7-845dbf793368&DisplayLang=en

C# 3.0入門系列(四)-之Select操作

先給關注dlinq的朋友們道歉,最近工作實在忙,沒有時間來寫blog。從本節開始,我們講dlinq文法咯。我們先從select子句講起。看下面的例子。var q = from c in db.Customers select c.ContactName;這是一個最簡單的dlinq查詢語句,查詢得到連絡人的名字。在這裡,我需要提醒下大家的是,像這個語句只是個聲明,dlinq並沒有真正把資料取出來,只有當你需要該資料的時候,它才會幫你去取,這就是消極式載入(deferred

C# 3.0入門系列(三)

從本節開始,筆者將會和大家一起開始體驗dlinq了。前面我們準備了資料庫,也對資料庫之間的關係做了初步的瞭解。有了資料庫之後,資料和對象是一個什麼樣的關係呢?從dlinq的設計來看,它主要是為瞭解決data!=objects 的問題而產生的。那麼,現在,有了dlinq後資料和對象之間就可以有一個一一對應的關係了。我們既可以根據資料庫產生這種影射的代碼,也可以根據影射代碼產生資料庫。簡單的說,資料庫和影射代碼實現了相互轉化。linq

C# 3.0入門系列(二)

在第一篇中,我已經和大家簡單介紹了linq。也和大家提起linq是C# 3.0裡的一個特性。不過,你去裝linq priview時,你會發現,它提供了許多vb的linq代碼。從現在的情況看,linq會被移植到.net framework下。在本篇中,筆者將開始更加詳細的介紹dlinq。同時,也會介紹很實用的技巧和方法。在這之前,你需要安裝s2008 beta2版本。可以到http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx

C++物件版面配置及多態實現的探索(二)

虛函數的類的物件版面配置(1)如果類中存在虛函數時,情況會怎樣呢?我們知道當一個類中有虛函數時,編譯器會為該類產生一個虛函數表,並在它的每一個對象中插入一個指向該虛函數表的指標,通常這個指標是插在對象的起始位置。所謂的虛函數表實際就是一個指標數組,其中的指標指向真正的函數起始地址。我們來驗證一下,定義一個無成員變數的類C040,內含一個虛函數。struct C040{ virtual void foo() {}};運行如下代碼列印它的大小及對象中的內容。PRINT_SIZE_DETAIL(C04

C++實現不可被拷貝的類

在C++中,類的拷貝主要是通過拷貝建構函式和賦值函數,再者就是為拷貝專門實現的成員方法。由於拷貝建構函式和賦值函數在使用者為提供的情況下是由C++編譯器自動產生的,而且是public成員,因此預設的C++類都有拷貝功能。若讓一個C++類不能被拷貝,可顯式地聲明類的拷貝建構函式和賦值函數為私人函數,從而達到該類不可被拷貝的目的。下面簡單地提供一個基類,任何需要提供不可被拷貝功能的C++類只需從此類派生即可。/** 通過私人化拷貝建構函式和賦值函數而達到對象不可被拷貝的目的*

c#啟動本機程式

using system;    using system.Collections.Generic;    using system.ComponentModel;    using system.Data;    using system.Drawing;    using system.Text;    using system.windows.Forms;    using system.IO;    using

C#簡單實現List亂序

最近搞一個自動運行系統,需要實現大量的隨機方法,其中就有隨機排序List。我記得在JDK裡面的List有個 Collections.shuffle(list) 方法,可以直接進行列表亂序,結果在C#裡面卻沒有發現相關的方法,很是頭疼。看了網上介紹的一些方法發現在效率上都很差,然後查看了一下MSDN,想起List還有個Insert方法,嘿嘿,靈機一動,搞出一個非常簡單的東西,代碼如下:程式碼Random random = new Random();List<Content>

C#給中文加字母

public string getSpell(string cn)     {       byte[] arrCN = Encoding.Default.GetBytes(cn);       if (arrCN.Length > 1)       {         if (cn.CompareTo("吖") < 0)         {           return cn;         }         else if

常用演算法:C#用回溯法找出n個自然數中取r個數的全排列

回溯法也稱為試探法,該方法首先暫時放棄關於問題規模大小的限制,並將問題的候選解按某種順序逐一枚舉和檢驗。在回溯法中,放棄當前候選解,尋找下一個候選解的過程稱為回溯。本執行個體是用回溯法輸出n個自然數中以r個數全排列。代碼如下:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />public void Arrange(int n, int r) int i =

C#關於Web網站互動檢測

http我想大家和我一樣僅知道握手協議的居多,當需要用到互動檢測的時候就鬱悶了。1HttpWebRequest mHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);2        HttpWebResponse mHttpWebResponse =

C# Stable Sort(穩固排序)

保證相等元素的原始位置的排序被稱為是穩固的。一個非穩固排序(unstable sort)不保證相等的元素在排序之後還會保持原來的順序。.NET使用的排序方法是不穩固的。這些排序方法,包括 System.Array.Sort 和

C#實現表單和任意控制項的拖動

程式內有大部分注釋了,歡迎大家指正了!Code[copy to clipboard]CODE:1using System;2using System.Drawing;3using System.Windows.Forms;45namespace Yoker.FormUtils6{7  /**//// <summary>8  /// <para>說明:表單拖動類,通過這個類提供的方法實現表單上任意控制項可輔助拖動表單</para>9  /// <para&

總頁數: 4314 1 .... 4264 4265 4266 4267 4268 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.