C# 泛型:从文本文件中读取数据,以泛型形式返回
2022/2/1 22:10:25
本文主要是介绍C# 泛型:从文本文件中读取数据,以泛型形式返回,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C# 泛型:从文本文件中读取数据,以泛型形式返回
经常遇到需要返回不同数据类型,所以尝试了一下泛型函数,经测试可行。学会了返回值为泛型时该如何处理,用 (T)(object) 语句进行类型转换,例如:
data[i][j] = (T)(object)double.Parse("12.3");
完整代码如下:
/// <summary> /// 从文件中读取数据(泛型方式) /// </summary> /// <typeparam name="T">数据类型</typeparam> /// <param name="fileFullName">待读文件</param> /// <param name="passRowNums">跳过行数(不需跳过则为0)</param> /// <param name="separator">分隔符</param> /// <returns></returns> public static T[][] readFile<T>(string fileFullName, int passRowNums, string separator) { if (File.Exists(fileFullName)) //判断文件是否存在(地址是否正确) { string[] lines = File.ReadAllLines(fileFullName); //按行读取到字符串类型 T[][] data = new T[lines.Length - passRowNums][]; for (int i = 0; i < data.Length; i++) { //按分隔符分割 string[] iLine_splitted = Regex.Split(lines[i + passRowNums].Trim(), separator); data[i] = new T[iLine_splitted.Length]; //string类型 if (typeof(T).Equals(typeof(string))) data[i] = (T[])(object)iLine_splitted; //double类型 if (typeof(T).Equals(typeof(double))) { for (int j = 0; j < data[i].Length; j++) { data[i][j] = (T)(object)double.Parse(iLine_splitted[j]); } } //int类型 if (typeof(T).Equals(typeof(int))) { for (int j = 0; j < data[i].Length; j++) { data[i][j] = (T)(object)(int)double.Parse(iLine_splitted[j]); } } } return data; } else { Console.WriteLine("未找到文件:" + fileFullName); return null; } }
这篇关于C# 泛型:从文本文件中读取数据,以泛型形式返回的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#