## **Convert.ChangeType的使用方法** ###### Convert.ChangeType是一個C#中的方法,它可以將一個物件轉換為指定的類型。這個方法通常在需要將一個物件轉換為不同類型的物件時使用,例如int類型轉換為指定的T類型,明確轉為T肯定是不行的,因為此時T可能時任何一種對象,只能ChangeType來進行轉換。 --- ``` object obj = new object(); Type targetType = typeof(int);//,只需要將targetType參數替換為您需要的類型即可。 int result = (int)Convert.ChangeType(obj, targetType); ``` ##### 程式範例,在List擴展方法轉換型別 :::success ##### 使用ChangeType來進行轉換 ::: ``` public static class ListExtension { public static List<TTarget> ConverTo<TSource, TTarget>(this List<TSource> List) { var result = new List<TTarget>(); foreach (var item in List) { //轉換後是Object類型,需要再轉一次 TTarget itemConver = (TTarget)Convert.ChangeType(item, typeof(TTarget)); result.Add(itemConver); } return result; } } ``` ``` var decimals = new List<decimal> { 1.0m,2.5m,3.8m}; var ints = decimals.ConverTo<decimal, int>();//1,2,4 ``` :::warning ##### 如兩個型別本身就無法轉換,會導致失敗,如以下子串轉為decimal ::: ``` var strins = new List<string> { "AAA", "BBB", "CCC" }; var stirngtoints = strins.ConverTo<string, decimal>(); //System.FormatException: 'The input string 'AAA' was not in a correct format.' ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up