惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Visual Studio Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
小众软件
小众软件
L
LangChain Blog
Cyberwarzone
Cyberwarzone
美团技术团队
The Register - Security
The Register - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
V
V2EX
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
aimingoo的专栏
aimingoo的专栏
人人都是产品经理
人人都是产品经理
F
Full Disclosure
V2EX - 技术
V2EX - 技术
The Cloudflare Blog
博客园 - 叶小钗
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Latest news
Latest news
S
Security @ Cisco Blogs
Spread Privacy
Spread Privacy
Project Zero
Project Zero
K
Kaspersky official blog
MyScale Blog
MyScale Blog
Attack and Defense Labs
Attack and Defense Labs
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Webroot Blog
Webroot Blog
罗磊的独立博客
Vercel News
Vercel News
N
News and Events Feed by Topic
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes

博客园 - 西门潇洒

MSSQL批量写入数据方案 关于SQL连接 加条件查询的LINQ表达式写法 关于LINQ中实现随机查询数据库中记录 .NET新特性--扩展方法 the Project type is not supported by installation 项目类型不能正确加载 ASP.NET三层架构中数据绑定的问题 ASP.NET 2.0中XML数据的处理 小牛生产小牛的问题解决集粹 <转>自毁前程的七种行为 <转>在 ASP.NET 中执行 URL 重写 正则式中的实用命名组替换 去除socket编程当中接收到的多余符\0 - 西门潇洒 - 博客园 将一段符合XML格式规范字符串插入已有XML文档当中 <转>如何C#中实现在TreeView查找某一节点 javascript正则表达式中使用变量关键字 <转>JavaScript 参考教程之对象化编程 <转>JavaScript 参考教程之JavaScript 简介 <转>JavaScript 参考教程之事件处理 <转>JavaScript 参考教程资料之文档对象
Array中数据强制数据类型转换
西门潇洒 · 2008-06-21 · via 博客园 - 西门潇洒

因为工作需要,有工作中需要大量的把string数组转换成为int数组

我们知道如果需要转换string数组当中的所有数所成为int有一个非常传统的方法
以下是测试demo


string[] strs = new string[] "1""2""3" };
int[] numbers = new int[strs.Length];
for (int i = 0; i < strs.Length; i++)
  {
      numbers[i] 
= Convert.ToInt32(strs[i]);
  }

其实ms在VS当中提供了一个非常实用的方法可以供我们使用直接进行转换的,不过其原理其实也是一样
那就是Array.ConvertAll这个方法
MSDN描述为

public static TOutput[] ConvertAll<TInput, TOutput>(
TInput[] array,
Converter<TInput, TOutput> converter
)

其中参数分别为:TInput 为源数组类型,TOutput为目标数组类型 ,array当然即为源数组,而converter为一个委托
这个所提供的功能即为把数据从一种数据类型转换另一种数据类型的一个方法.

以下是我使用demo

public static int ConvertStrToInt(string source)
{
return Convert.ToInt32(source);

}

string[] strs = new string[] { "1""2""3" };
for (int i = 0; i < strs.Length; i++)
{
    Console.WriteLine(strs[i].GetType().ToString());
}

Converter

<stringint> myConvert = new Converter<stringint>(ConvertStrToInt);
int[] numbers = Array.ConvertAll<string,int>(strs, myConvert);
for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i].GetType().ToString());
}

在这里还补充一点
我们知道在建立数组初始化时必须指定其数组容量,否则就会报错
但我们如果确实不确定数组的容量为多少时,应该怎么解决呢,当然,应该ArrayList这类对象当然是可以的
不过就数组这个问题在这里我找到一个方法,也欢迎大家指出.
以下是使用demo

int []arr = new int[0];
        
for (int i = 0; i < GridView1.Rows.Count; i++)
{
    
if (GridView1.Rows[i].RowType == DataControlRowType.DataRow)
    {
       CheckBox cbSelect 
= GridView1.Rows[i].Cells[6].FindControl("cbxSelect"as CheckBox;
                
       
if (cbSelect.Checked)
       {
           
int[] temp = new int[arr.Length + 1];
           Array.Copy(arr, temp, arr.Length);
           temp[arr.Length] 
= Convert.ToInt32(GridView1.DataKeys[i].Value);
           arr 
= temp;
       }
     }
}

在这里说一下我的具体是什么,在一个数据列表当中我需要获取到所有选定了的数据主键值,然而我不知道具体用户选择了几个,所以这个数据的大小无法确定,所以在这里采用一个中间数组的方法进行中继处理,每次发现选中则把用数据容量大1的数组去记录,并且把其值存储下来,最后那个临时数组即为我们想要的值。
当然在效率方面没有考虑,个人不建议使用
朋友们有好的意见一起分享^_^