Array類 a) IEumerable介面是由foreach語句用於迭代數組的介面。 b) ICollection介面派生於IEumerable介面,這個介面主要用於確定集合中的元素個數,或用於同步。 c) IList介面派生於ICollection介面,Array類實現IList介面的主要原因是 ...
Array類
- 用括弧聲明數組是C#中使用Array類的記號。在後臺使用C#語法,會創建一個派生於抽象基類Array的新類。這樣,就可以使用Array類為每個C#數組定義的方法和屬性了。
- Array類實現了IEumerable、ICollection和IList介面,以訪問和枚舉數組中的元素。由於用定製數組創建的類派生於Array抽象類,所以能使用通過數組變數執行的介面中的方法和屬性。
a) IEumerable介面是由foreach語句用於迭代數組的介面。
b) ICollection介面派生於IEumerable介面,這個介面主要用於確定集合中的元素個數,或用於同步。
c) IList介面派生於ICollection介面,Array類實現IList介面的主要原因是IList介面定義了Item屬性,以使用索引器訪問元素。
- Array類包含的如下屬性和方法可以用於每個數組實例。
屬性及方法 |
說明 |
Length |
Length屬性返回數組中的元素個數。如果是一個多維數組,該屬性會返回所有階的元素個數。如果需要確定一維中的元素個數,則可以使用GetLength()方法 |
LongLength |
Length屬性返回int值,而LongLength屬性返回long值。如果數組包含的元素個數超出了32位int值的取值範圍,就需要使用LongLength屬性,來獲得元素個數 |
Rank |
使用Rank屬性可以獲得數組的維數 |
CreateInstance() |
如果事先不知道元素的類型,就可以使用該靜態方法,因為類型可以作為Type對象傳送給CreateInstance()方法。 |
SetValue() |
SetValue()方法設置數組的元素,其參數是每一維的索引 |
Clone() |
因為數組是引用類型,所以將一個數組變數賦予另一個數組變數,就會得到兩個指向同一數組的變數。而複製數組,會使數組實現ICloneable介面。這個介面定義的Clone()方法會創建數組的淺副本。 |
Sort() |
Array類實現了對數組中元素的冒泡排序。Sort()方法需要數組中的元素實現IComparable介面。簡單類型,如System.String和System.Int32實現了IComparable介面,所以可以對包含這些類型的元素排序。 |
Count |
Count屬性可確定集合中的元素個數,它返回的值與Length屬性相同 |
IsSynchronized SyncRoot |
IsSynchronized屬性確定集合是否是線程安全的。對於數組,這個屬性總是返回false。對於同步訪問,SyncRoot屬性可以用於線程安全的訪問。 |
CopyTo() |
利用CopyTo()方法可以將數組的元素複製到現有的數組中。它類似於靜態方法Array.Copy() |
Add() |
Add()方法用於在集合中添加元素。對於數組,該方法會拋出NotSupportedException異常 |
Clear() |
Clear()方法可清除數組中的所有元素。值類型設置為0,引用類型設置為null |
Contains() |
Contains()方法可以確定某個元素是否在數組中。其返回值是true或false。這個方法會對數組中的所有元素進行線性搜索,直到找到所需元素為止 |
IndexOf() |
IndexOf()方法與Contains()方法類似,也是對數組中的所有元素進行線性搜索。不同的是,IndexOf()方法會返回所找到的第一個元素的索引 |
Insert() |
對於集合,Insert()方法用於插入元素,對於數組,這方法拋出NotSupportedException異常 |
Remove() RemoveAt() |
對於集合, Remove()和RemoveAt()可刪除元素。對於數組,這些方法拋出NotSupportedException異常 |
IsFixedSize |
數組的大小總是固定的,所以這個屬性總是返回true |
IsReadOnly |
數組總是可以讀/寫的,所以這個屬性返回false。 |
Item |
Item屬性可以用整型索引訪問數組 |
MoveNext() |
MoveNext()方法移動到集合的下一個元素上,如果有這個元素,該方法就返回true。如果集合不再有更多的元素,該方法就返回false |
Current |
屬性Current返回游標所在的元素 |
Reset() |
Reset()方法將游標重新定位於集合的開頭。許多枚舉會拋出NotSupportedException異常 |
GetEumerator() |
數組或集合執行帶GetEumerator()方法的IEumerable介面。GetEumerator()方法返回一個執行IEumerable介面的枚舉。接著,foreach語句就可以使用IEumerable介面迭代集合了。 |
System.Text.String類
- System.String是一個類,專門用於存儲字元串,允許對字元串進行許多操作。由於這種數據類型非常重要,C#提供了它自己的關鍵字和相關的語法,以便於使用這個類來處理字元串。
- 使用“+”運算符重載可以連接字元串。
- C#還允許使用類似於索引器的語法來提取指定的字元。
- 這個類可以完成許多常見的任務,例如替換字元、刪除空白和把字母變成大寫形式等。可用的方法如下:
方法 |
作用 |
Compare() |
比較字元串的內容,考慮文化背景(區域),確定某些字元是否相等 |
CompareOrdinal () |
與Compare一樣,但不考慮文化背景 |
Concat () |
把多個字元串實例合併為一個實例 |
CopyTo () |
把特定數量的字元從選定的下標複製到數組的一個全新實例中 |
Format () |
格式化包含各種值的字元串和如何格式化每個值的說明符 |
IndexOf () |
定位字元串中第一次出現某個給定子字元串或字元的位置 |
IndexOfAny () |
定位字元串中第一次出現某個字元或一組字元的位置 |
Insert () |
把一個字元串實例插入到另一個字元串實例的指定索引處 |
Join () |
合併字元串數組,建立一個新字元串 |
LastIndexOf () |
與IndexOf一樣,但定位最後一次出現的位置 |
LastIndexOfAny () |
與IndexOfAny,但定位最後一次出現的位置 |
PadLeft () |
在字元串的開頭,通過添加指定的重覆字元填充字元串 |
PadRight () |
在字元串的結尾,通過添加指定的重覆字元填充字元串 |
Replace () |
用另一個字元或子字元串替換字元串中給定的字元或子字元串 |
Split () |
在出現給定字元的地方,把字元串拆分為一個子字元串數組 |
Substring () |
在字元串中獲取給定位置的子字元串 |
ToLower () |
把字元串轉換為小寫形式 |
ToUpper () |
把字元串轉換為大寫形式 |
Trim () |
刪除首尾的空白 |
System.Text.StringBuilder類
- String 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在記憶體中創建一個新的字元串對象,這就需要為該新對象分配新的空間。在需要對字元串執行重覆修改的情況下,與創建新String 對象相關的系統開銷可能會非常昂貴。如果要修改字元串而不創建新的對象,則可以使用 System.Text.StringBuilder 類。
- 在使用String類構造一個字元串時,要給它分配足夠的記憶體來保存字元串,但StringBuilder通常分配的記憶體會比需要的更多。開發人員可以選擇顯式指定StringBuilder要分配多少記憶體,但如果沒有顯式指定,存儲單元量在預設情況下就根據StringBuilder初始化時的字元串長度來確定。它有兩個主要的屬性:
1) Length指定字元串的實際長度.
2) Capacity是字元串占據存儲單元的最大長度。
- 主要的StringBuilder方法:
名稱 |
作用 |
Append() |
給當前字元串添加一個字元串 |
AppendFormat() |
添加特定格式的字元串 |
Insert() |
在當前字元串中插入一個子字元串 |
Remove() |
從當前字元串中刪除字元 |
Replace() |
在當前字元串中,用某個字元替換另一個字元,或者用當前字元串中的一個子字元串替換另一字元串。 |
ToString() |
把當前字元串轉換為System.String對象(在System.Object中被重寫) |
- 集合是一組組合在一起的類似的類型化對象。任何類型的對象都可被組合到 Object 類型的單個集合中,以利用採用該語言繼承的構造。
- System.Collections 命名空間包含介面和類,這些介面和類定義各種對象的集合。
- 集合類型是數據集合的常見變體,例如哈希表、隊列、堆棧、字典和列表。
- System.Collections 命名空間主要成員:
類 |
說明 |
使用大小可按需動態增加的數組實現 IList 介面。 |
|
管理位值的壓縮數組,該值表示為布爾值,其中 true 表示位是打開的 (1),false 表示位是關閉的 (0)。 |
|
表示鍵/值對的集合,這些鍵/值對根據鍵的哈希代碼進行組織。 |
|
表示對象的先進先出集合。 |
|
表示鍵/值對的集合,這些鍵值對按鍵排序並可按照鍵和索引訪問。 |
|
表示對象的簡單的後進先出非泛型集合。 |
|
介面 |
說明 |
定義所有非泛型集合的大小、枚舉數和同步方法。 |
|
公開一種比較兩個對象的方法。 |
|
表示鍵/值對的非通用集合。 |
|
枚舉非泛型字典的元素。 |
|
公開枚舉數,該枚舉數支持在非泛型集合上進行簡單迭代。 |
|
支持對非泛型集合的簡單迭代。 |
|
定義方法以支持對象的相等比較。 |
|
使用自定義哈希函數為對象提供哈希代碼。 |
|
表示可按照索引單獨訪問的對象的非泛型集合。 |
System.Collections.Generic命名空間
- System.Collections.Generic和System.Collections集合的結構有很多相似之處,不同的是“Generic”提供的都是泛型集合,而“Collections”中的集合併不都支持泛型。
- 泛型的意義在於,通過參數化類型來實現在同一份代碼上對多種數據類型的操作。這種解釋比較抽象,簡單來講,泛型就是利用參數化類型將類型抽象化,通常稱為“類型多態”。
- 泛型使用“<>”將類型參數化,其中被尖括弧包裝的類型,必須是從System.Object繼承的共有成員。
- 泛型的優點如下:
1) 更強的類型安全。
2) 更好的復用,因為類型其實是一個參數。
3) 更高的效率。
4) 更清晰的約束。
- System.Collections.Generic空間中的成員基本上和System.Collections類似,只不過是泛型的版本。
System. Text.RegularExpressions命名空間
- 正則表達式在各種程式中都有著難以置信的作用。正則表達式可以看做一種有特定功能的小型編程語言:在大的字元串表達式中定位一個子字元串。
- System.Text.RegularExpressions 命名空間包含一些類,這些類提供對 .NET Framework 正則表達式引擎的訪問。 該命名空間提供正則表達式功能,可以從運行在 Microsoft .NET Framework 內的任何平臺或語言中使用該功能。
- System.Text.RegularExpressions 命名空間主要成員:
類 |
說明 |
表示來自單個成功的子表達式捕獲的結果。 |
|
表示一個捕獲組做出的捕獲的集合。 |
|
表示來自單個捕獲組的結果。 |
|
返回一次匹配中捕獲的組的集合。 |
|
表示單個正則表達式匹配的結果。 |
|
表示通過以迭代方式將正則表達式模式應用於輸入字元串所找到的成功匹配的集合。 |
|
表示不可變的正則表達式。 |
應用實例:
Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
RegexOptions.Compiled | RegexOptions.IgnoreCase);// Define a regular expression for repeated words.
string text = "The the quick brown fox fox jumped over the lazy dog dog.";// Define a test string.
MatchCollection matches = rx.Matches(text);// Find matches.
Console.WriteLine("{0} matches found in:\n {1}", matches.Count, text);// Report the number of matches found. foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
Console.WriteLine("'{0}' repeated at positions {1} and {2}", groups["word"].Value, groups[0].Index,
groups[1].Index);
}
// Report on each match.
// The example produces the following output to the console:
// 3 matches found in:
// The the quick brown fox fox jumped over the lazy dog dog.
// 'The' repeated at positions 0 and 4
// 'fox' repeated at positions 20 and 25
// 'dog' repeated at positions 50 and 54
System.Data.SqlClient 命名空間
- System.Data.SqlClient 命名空間這個類集合用於訪問托管空間中的 SQL Server 資料庫。
- 使用 SqlDataAdapter,可以填充駐留在記憶體中的 DataSet,該數據集可用於查詢和更新數據源。
- System.Data.SqlClient 命名空間主要成員:
類 |
說明 |
使您可以用其他源的數據有效批量載入 SQL Server 表。 |
|
表示要對 SQL Server 資料庫執行的一個 Transact-SQL 語句或存儲過程。 |
|
用於將對 DataSet 所做的更改與關聯的 SQL Server 資料庫的更改相協調。 |
|
表示 SQL Server 資料庫的一個打開的連接。無法繼承此類。 |
|
為創建和管理由 SqlConnection 類使用的連接字元串的內容提供了一種簡單方法。 |
|
表示用於填充 DataSet 和更新 SQL Server 資料庫的一組數據命令和一個資料庫連接。 |
|
提供一種從 SQL Server 資料庫讀取行的只進流的方式。 |
|
收集與 SQL Server 返回的警告或錯誤有關的信息。 |
|
收集 SQL Server .NET Framework 數據提供程式生成的所有錯誤。 |
|
當 SQL Server 返回警告或錯誤時引發的異常。無法繼承此類。 |
|
表示 SqlCommand 的參數,也可以是它到 DataSet 列的映射。 |
|
表示要在 SQL Server 資料庫中處理的 Transact-SQL 事務。 |
System.Data命名空間
- System.Data 命名空間提供對錶示 ADO.NET 結構的類訪問。通過 ADO.NET 可以生成一些組件,用於有效管理多個數據源的數據。
- ADO.NET 結構的中心構件是 DataSet類。每個 DataSet 都可以包含多個 DataTable對象,每個 DataTable 都包含來自單個數據源(如 SQL Server)的數據。
- 每個 DataTable 都包含一個 DataColumnCollection(DataColumn對象的集合),DataColumnCollection 決定每個 DataTable 的架構。DataType 屬性確定 DataColumn 所包含的數據的類型。使用 ReadOnly 和 AllowDBNull 屬性可以進一步確保數據完整性。使用 Expression 屬性可以構造計算出的列。
- 如果 DataTable 參與同另一個 DataTable 的父/子關係,則通過將DataRelation 添加到 DataSet 對象的 DataRelationCollection 來構造該關係。
- 使用 System.Data.SqlClient 命名空間(用於 SQL Server 的 .NET Framework 數據提供程式)、System.Data.Odbc 命名空間(用於 ODBC 的 .NET Framework 數據提供程式)、System.Data.OleDb 命名空間(用於 OLE DB 的 .NET Framework 數據提供程式)或 System.Data.OracleClient 命名空間(用於 Oracle 的 .NET Framework 數據提供程式),可訪問要與 DataSet 結合使用的數據源。每個 .NET Framework 數據提供程式都有相應的 DataAdapter,可以將它用作數據源和 DataSet 之間的橋梁。
- System.Data命名空間主要成員:
類 |
說明 |
表示可在一個或多個 DataColumn 對象上強制的約束。 |
|
表示 DataTable 的約束的集合。 |
|
表示 DataTable 中列的架構。 |
|
表示 DataTable 的 DataColumn 對象的集合。 |
|
表示使用 ADO.NET 組件發生錯誤時引發的異常。 |
|
表示兩個 DataTable 對象之間的父/子關係。 |
|
表示此 DataSet 的 DataRelation 對象的集合。 |
|
表示 DataTable 中的一行數據。 |
|
表示 DataTable 的行的集合。 |
|
表示 DataRow 的自定義視圖。 |
|
表示數據在記憶體中的緩存。 |
|
表示記憶體中數據的一個表。 |
|
表示 DataSet 的表的集合。 |
|
DataTableReader 以一個或多個只讀、只進結果集的形式獲取一個或多個 DataTable 對象的內容。 |
|
表示用於排序、篩選、搜索、編輯和導航的 DataTable 的可綁定數據的自定義視圖。 |
完整實例:
string sqlConnectionCommand = "Data Source=aa;Initial Catalog=bb;User ID=cc;Pwd=dd";
string dataTableName = "Basic_Keyword_Test";
string sqlSelectCommand = "Select KeywordID, KeywordName From Basic_Keyword_Test";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionCommand);
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.CommandType = System.Data.CommandType.Text;
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandText = sqlSelectCommand;
sqlConnection.Open();
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
sqlDataAdapter.SelectCommand = sqlCommand;
DataSet dataSet = new DataSet();
SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);
sqlDataAdapter.Fill(dataSet, dataTableName);
DataRow row = dataSet.Tables[0].NewRow();
row[0] = 10000;
row[1] = "new row";
dataSet.Tables[0].Rows.Add(row);
sqlDataAdapter.Update(dataSet, dataTableName);
sqlCommand.Dispose();
sqlDataAdapter.Dispose();
sqlConnection.Close();
System.Xml 命名空間
System.Xml 命名空間為處理 XML 提供基於標準的支持。主要成員有如下:
類 |
說明 |
表示一個屬性。此屬性的有效值和預設值在文檔類型定義 (DTD) 或架構中進行定義。 |
|
表示可以按名稱或索引訪問的屬性的集合。 |
|
允許通過相關的 DataSet 存儲、檢索和操作結構化數據。 |
|
表示 XML 聲明節點:<?xml version='1.0'...?>。 |
|
表示 XML 文檔。 |
|
表示對樹插入操作有用的輕量對象。 |
|
表示文檔類型聲明。 |
|
表示一個元素。 |
|
返回有關最後一個異常的詳細信息。 |
|
表示 XML 文檔中的單個節點。 |
|
表示提供對 XmlNode 中的 XML 數據進行快速、非緩存的只進訪問的讀取器。 |
|
表示提供對 XML 數據進行快速、非緩存、只進訪問的讀取器。 |
|
指定在 Create 方法創建的 XmlReader 對象上支持的一組功能。 |
|
表示元素或屬性的文本內容。 |
|
表示提供對 XML 數據進行快速、非緩存、只進訪問的讀取器。 |
|
表示提供快速、非緩存、只進方法的編寫器,該方法生成包含 XML 數據(這些數據符合 W3C 可擴展標記語言 (XML) 1.0 和“XML 中的命名空間”建議)的流或文件。 |
|
表示一個編寫器,該編寫器提供一種快速、非緩存和只進的方式來生成包含 XML 數據的流或文件。 |
|
指定在由 System.Xml.XmlWriter.Create 方法創建的 XmlWriter 對象上支持的一組功能。 |
完整實例:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");
XmlElement xe1=xmlDoc.CreateElement("book");
xe1.SetAttribute("genre","小橘");
xe1.SetAttribute("ISBN","2-3631-4");
XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="C#從入門到精通";
xe1.AppendChild(xesub1);
XmlElement xesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
root.AppendChild(xe1);
xmlDoc.Save("bookstore.xml");
System.IO 命名空間
System.IO 命名空間包含允許讀寫文件和數據流的類型以及提供基本文件和目錄支持的類型。主要成員有如下:
類 |
說明 |
用特定的編碼將基元數據類型讀作二進位值。 |
|
以二進位形式將基元類型寫入流,並支持用特定的編碼寫入字元串。 |
|
給另一流上的讀寫操作添加一個緩衝層。 |
|
公開用於創建、移動和枚舉通過目錄和子目錄的靜態方法。 |
|
公開用於創建、移動和枚舉目錄和子目錄的實例方法。 |
|
提供對有關驅動器的信息的訪問。 |
|
提供用於創建、複製、刪除、移動和打開文件的靜態方法,並協助創建 FileStream 對象。 |
|
提供創建、複製、刪除、移動和打開文件的實例方法,並且幫助創建 FileStream 對象。無法繼承此類。 |
|
公開以文件為主的 Stream,既支持同步讀寫操作,也支持非同步讀寫操作。 |
|
發生 I/O 錯誤時引發的異常。 |
|
創建其支持存儲區為記憶體的流。 |
|
對包含文件或目錄路徑信息的 String 實例執行操作。這些操作是以跨平臺的方式執行的。 |
|
實現一個 TextReader,使其以一種特定的編碼從位元組流中讀取字元。 |
|
實現一個 TextWriter,使其以一種特定的編碼向流中寫入字元。 |
|
實現從字元串進行讀取的 TextReader。 |
|
實現一個用於將信息寫入字元串的 TextWriter。該信息存儲在基礎 StringBuilder 中。 |
|
表示可讀取連續字元系列的讀取器。 |
|
表示可以編寫一個有序字元系列的編寫器。該類為抽象類。 |
完整實例:
string path = @"c:\temp\MyTest.txt";
if (!File.Exists(path)) {// Create a file to write to.
using (StreamWriter sw = File.CreateText(path)) {
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
}
// Open the file to read from.
using (StreamReader sr = File.OpenText(path)) {
string s = "";
while ((s = sr.ReadLine()) != null) {
Console.WriteLine(s);
}
}
摘自:https://www.cnblogs.com/lolemil/p/6741856.html
如有侵犯,請聯繫本人刪除!謝謝。。。