C# 常用類和命名空間


Array類

  1. 用括號聲明數組是C#中使用Array類的記號。在后台使用C#語法,會創建一個派生於抽象基類Array的新類。這樣,就可以使用Array類為每個C#數組定義的方法和屬性了。
  2. Array類實現了IEumerable、ICollection和IList接口,以訪問和枚舉數組中的元素。由於用定制數組創建的類派生於Array抽象類,所以能使用通過數組變量執行的接口中的方法和屬性。
    a) IEumerable接口是由foreach語句用於迭代數組的接口。
    b) ICollection接口派生於IEumerable接口,這個接口主要用於確定集合中的元素個數,或用於同步。
    c) IList接口派生於ICollection接口,Array類實現IList接口的主要原因是IList接口定義了Item屬性,以使用索引器訪問元素。 1. 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類

  1. System.String是一個類,專門用於存儲字符串,允許對字符串進行許多操作。由於這種數據類型非常重要,C#提供了它自己的關鍵字和相關的語法,以便於使用這個類來處理字符串。
  2. 使用“+”運算符重載可以連接字符串。
  3. C#還允許使用類似於索引器的語法來提取指定的字符。
  4. 這個類可以完成許多常見的任務,例如替換字符、刪除空白和把字母變成大寫形式等。可用的方法如下:
方法 作用
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類

  1. String 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在內存中創建一個新的字符串對象,這就需要為該新對象分配新的空間。在需要對字符串執行重復修改的情況下,與創建新String 對象相關的系統開銷可能會非常昂貴。如果要修改字符串而不創建新的對象,則可以使用 System.Text.StringBuilder 類。
  2. 在使用String類構造一個字符串時,要給它分配足夠的內存來保存字符串,但StringBuilder通常分配的內存會比需要的更多。開發人員可以選擇顯式指定StringBuilder要分配多少內存,但如果沒有顯式指定,存儲單元量在默認情況下就根據StringBuilder初始化時的字符串長度來確定。
    它有兩個主要的屬性:
    1. Length指定字符串的實際長度.
    2. Capacity是字符串占據存儲單元的最大長度。
  3. 主要的StringBuilder方法:
名稱 作用
Append() 給當前字符串添加一個字符串
AppendFormat() 添加特定格式的字符串
Insert() 在當前字符串中插入一個子字符串
Remove() 從當前字符串中刪除字符
Replace() 在當前字符串中,用某個字符替換另一個字符,或者用當前字符串中的一個子字符串替換另一字符串。
ToString() 把當前字符串轉換為System.String對象(在System.Object中被重寫)
  1. 集合是一組組合在一起的類似的類型化對象。任何類型的對象都可被組合到 Object 類型的單個集合中,以利用采用該語言繼承的構造。
  2. System.Collections 命名空間包含接口和類,這些接口和類定義各種對象的集合。
  3. 集合類型是數據集合的常見變體,例如哈希表、隊列、堆棧、字典和列表。
  4. System.Collections 命名空間主要成員:
說明
ArrayList 使用大小可按需動態增加的數組實現 IList 接口。
BitArray 管理位值的壓縮數組,該值表示為布爾值,其中 true 表示位是打開的 (1),false 表示位是關閉的 (0)。
Hashtable 表示鍵/值對的集合,這些鍵/值對根據鍵的哈希代碼進行組織。
Queue 表示對象的先進先出集合。
SortedList 表示鍵/值對的集合,這些鍵值對按鍵排序並可按照鍵和索引訪問。
Stack 表示對象的簡單的后進先出非泛型集合。
接口 說明
ICollection 定義所有非泛型集合的大小、枚舉數和同步方法。
IComparer 公開一種比較兩個對象的方法。
IDictionary 表示鍵/值對的非通用集合。
IDictionaryEnumerator 枚舉非泛型字典的元素。
IEnumerable 公開枚舉數,該枚舉數支持在非泛型集合上進行簡單迭代。
IEnumerator 支持對非泛型集合的簡單迭代。
IEqualityComparer 定義方法以支持對象的相等比較。
IHashCodeProvider 使用自定義哈希函數為對象提供哈希代碼。
IList 表示可按照索引單獨訪問的對象的非泛型集合。

System.Collections.Generic命名空間

  1. System.Collections.Generic和System.Collections集合的結構有很多相似之處,不同的是“Generic”提供的都是泛型集合,而“Collections”中的集合並不都支持泛型。
  2. 泛型的意義在於,通過參數化類型來實現在同一份代碼上對多種數據類型的操作。這種解釋比較抽象,簡單來講,泛型就是利用參數化類型將類型抽象化,通常稱為“類型多態”。
  3. 泛型使用“<>”將類型參數化,其中被尖括號包裝的類型,必須是從System.Object繼承的共有成員。
  4. 泛型的優點如下:
    1. 更強的類型安全。
    2. 更好的復用,因為類型其實是一個參數。
    3. 更高的效率。
    4. 更清晰的約束。

System.Collections.Generic空間中的成員基本上和System.Collections類似,只不過是泛型的版本。

System. Text.RegularExpressions命名空間

  1. 正則表達式在各種程序中都有着難以置信的作用。正則表達式可以看做一種有特定功能的小型編程語言:在大的字符串表達式中定位一個子字符串。
  2. System.Text.RegularExpressions 命名空間包含一些類,這些類提供對 .NET Framework 正則表達式引擎的訪問。 該命名空間提供正則表達式功能,可以從運行在 Microsoft .NET Framework 內的任何平台或語言中使用該功能。
  3. System.Text.RegularExpressions 命名空間主要成員:
說明
Capture 表示來自單個成功的子表達式捕獲的結果。
CaptureCollection 表示一個捕獲組做出的捕獲的集合。
Group 表示來自單個捕獲組的結果。
GroupCollection 返回一次匹配中捕獲的組的集合。
Match 表示單個正則表達式匹配的結果。
MatchCollection 表示通過以迭代方式將正則表達式模式應用於輸入字符串所找到的成功匹配的集合。
Regex 表示不可變的正則表達式。

應用實例:

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 matche	s) 
{ 
	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 命名空間

  1. System.Data.SqlClient 命名空間這個類集合用於訪問托管空間中的 SQL Server 數據庫。
  2. 使用 SqlDataAdapter,可以填充駐留在內存中的 DataSet,該數據集可用於查詢和更新數據源。
  3. System.Data.SqlClient 命名空間主要成員:
說明
SqlBulkCopy 使您可以用其他源的數據有效批量加載 SQL Server 表。
SqlCommand 表示要對 SQL Server 數據庫執行的一個 Transact-SQL 語句或存儲過程。
SqlCommandBuilder 用於將對 DataSet 所做的更改與關聯的 SQL Server 數據庫的更改相協調。
SqlConnection 表示 SQL Server 數據庫的一個打開的連接。無法繼承此類。
SqlConnectionStringBuilder 為創建和管理由 SqlConnection 類使用的連接字符串的內容提供了一種簡單方法。
SqlDataAdapter 表示用於填充 DataSet 和更新 SQL Server 數據庫的一組數據命令和一個數據庫連接。
SqlDataReader 提供一種從 SQL Server 數據庫讀取行的只進流的方式。
SqlError 收集與 SQL Server 返回的警告或錯誤有關的信息。
SqlErrorCollection 收集 SQL Server .NET Framework 數據提供程序生成的所有錯誤。
SqlException 當 SQL Server 返回警告或錯誤時引發的異常。無法繼承此類。
SqlParameter 表示 SqlCommand的參數,也可以是它到 DataSet 列的映射。
SqlTransaction 表示要在 SQL Server 數據庫中處理的 Transact-SQL 事務。

System.Data命名空間

  1. System.Data 命名空間提供對表示 ADO.NET 結構的類訪問。通過 ADO.NET 可以生成一些組件,用於有效管理多個數據源的數據。
  2. ADO.NET 結構的中心構件是 DataSet類。每個 DataSet 都可以包含多個 DataTable對象,每個 DataTable 都包含來自單個數據源(如 SQL Server)的數據。
  3. 每個 DataTable 都包含一個 DataColumnCollection(DataColumn對象的集合),DataColumnCollection 決定每個 DataTable 的架構。DataType 屬性確定 DataColumn 所包含的數據的類型。使用 ReadOnly 和 AllowDBNull 屬性可以進一步確保數據完整性。使用 Expression屬性可以構造計算出的列。
  4. 如果 DataTable 參與同另一個 DataTable 的父/子關系,則通過將DataRelation 添加到 DataSet 對象的 DataRelationCollection來構造該關系。
  5. 使用 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 之間的橋梁。
  6. System.Data命名空間主要成員:
說明
Constraint 表示可在一個或多個 DataColumn 對象上強制的約束。
ConstraintCollection 表示 DataTable 的約束的集合。
DataColumn 表示 DataTable 中列的架構。
DataColumnCollection 表示 DataTable 的 DataColumn 對象的集合。
DataException 表示使用 ADO.NET 組件發生錯誤時引發的異常。
DataRelation 表示兩個 DataTable 對象之間的父/子關系。
DataRelationCollection 表示此 DataSet 的 DataRelation 對象的集合。
DataRow 表示 DataTable 中的一行數據。
DataRowCollection 表示 DataTable 的行的集合。
DataRowView 表示 DataRow 的自定義視圖。
DataSet 表示數據在內存中的緩存。
DataTable 表示內存中數據的一個表。
DataTableCollection 表示 DataSet 的表的集合。
DataTableReader DataTableReader 以一個或多個只讀、只進結果集的形式獲取一個或多個 DataTable 對象的內容。
DataView 表示用於排序、篩選、搜索、編輯和導航的 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 提供基於標准的支持。主要成員有如下:

說明
XmlAttribute 表示一個屬性。此屬性的有效值和默認值在文檔類型定義 (DT D) 或架構中進行定義。
XmlAttributeCollection 表示可以按名稱或索引訪問的屬性的集合。
XmlDataDocument 允許通過相關的 DataSet 存儲、檢索和操作結構化數據。
XmlDeclaration 表示 XML 聲明節點:。
XmlDocument 表示 XML 文檔。
XmlDocumentFragment 表示對樹插入操作有用的輕量對象。
XmlDocumentType 表示文檔類型聲明。
XmlElement 表示一個元素。
XmlException 返回有關最后一個異常的詳細信息。
XmlNode 表示 XML 文檔中的單個節點。
XmlNodeReader 表示提供對 XmlNode 中的 XML 數據進行快速、非緩存的只進訪問的讀取器。
XmlReader 表示提供對 XML 數據進行快速、非緩存、只進訪問的讀取器。
XmlReaderSettings 指定在 Create 方法創建的 XmlReader 對象上支持的一組功能。
XmlText 表示元素或屬性的文本內容。
XmlTextReader 表示提供對 XML 數據進行快速、非緩存、只進訪問的讀取器。
XmlTextWriter 表示提供快速、非緩存、只進方法的編寫器,該方法生成包含 XML 數據(這些數據符合 W3C 可擴展標記語言 (XM L) 1.0 和“XML 中的命名空間”建議)的流或文件。
XmlWriter 表示一個編寫器,該編寫器提供一種快速、非緩存和只進的方式來生成包含 XML 數據的流或文件。
XmlWriterSettings 指定在由 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="CS從入門到精通";  
xe1.AppendChild(xesub1);  
XmlElement xesub2=xmlDoc.CreateElement("author");  
xesub2.InnerText="候捷";  
xe1.AppendChild(xesub2);  
root.AppendChild(xe1);  
xmlDoc.Save("bookstore.xml");  

System.IO 命名空間

System.IO 命名空間包含允許讀寫文件和數據流的類型以及提供基本文件和目錄支持的類型。主要成員有如下:

說明
BinaryReader 用特定的編碼將基元數據類型讀作二進制值。
BinaryWriter 以二進制形式將基元類型寫入流,並支持用特定的編碼寫入字符串。
BufferedStream 給另一流上的讀寫操作添加一個緩沖層。
Directory 公開用於創建、移動和枚舉通過目錄和子目錄的靜態方法。
DirectoryInfo 公開用於創建、移動和枚舉目錄和子目錄的實例方法。
DriveInfo 提供對有關驅動器的信息的訪問。
File 提供用於創建、復制、刪除、移動和打開文件的靜態方法,並協助創建 FileStream 對象。
FileInfo 提供創建、復制、刪除、移動和打開文件的實例方法,並且幫助創建 FileStream 對象。無法繼承此類。
FileStream 公開以文件為主的 Stream,既支持同步讀寫操作,也支持異步讀寫操作。
IOException 發生 I/O 錯誤時引發的異常。
MemoryStream 創建其支持存儲區為內存的流。
Path 對包含文件或目錄路徑信息的 String 實例執行操作。這些操作是以跨平台的方式執行的。
StreamReader 實現一個 TextReader,使其以一種特定的編碼從字節流中讀取字符。
StreamWriter 實現一個 TextWriter,使其以一種特定的編碼向流中寫入字符。
StringReader 實現從字符串進行讀取的 TextReader。
StringWriter 實現一個用於將信息寫入字符串的 TextWriter。該信息存儲在基礎 StringBuilder 中。
TextReader 表示可讀取連續字符系列的讀取器。
TextWriter 表示可以編寫一個有序字符系列的編寫器。該類為抽象類。

完整實例:

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);		         
	}  
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM