c# - 按索引访问字符串字符,如果索引超出范围返回“”
问题描述
var myStr = "hello";
var chars = myStr.Split("");
chars.Select((letter, index) => {
var nextLetter = myStr[index + 1];
var nextNextLetter = myStr[index + 2];
DoSomething(nextLetter, nextNextLetter);
});
如果给定一个大于它的长度的索引myStr
会引发异常,我想要的是它""
在超出它的索引时返回myStr
。是否有一个字符串函数可以检查给定索引是否在范围内?
解决方案
您可以创建一个以安全方式返回值的函数。
private char GetValueSafe(string str, int index)
{
if(index >= str.Length)
{
return '\0';
}
else
{
return str[index];
}
}
现在用法很简单:
var myStr = "hello";
var chars = myStr.Split("");
chars.Select((letter, index) => {
var nextLetter = GetValueSafe(myStr, index + 1);
var nextNextLetter = GetValueSafe(myStr,index + 2);
DoSomething(nextLetter, nextNextLetter);
});
推荐阅读
- spring - 如何在春季加载多个骆驼上下文
- java - 无论如何使用java程序在docker容器中获取主机Mac和IP地址
- asp.net-mvc - Blazor 如何仅在具有相同类的一个元素上添加/删除类而不是全部
- c# - C#中的即兴问题
- html - 谁能告诉我如何在同一行中生成 div,即使它们是块元素?
- glom - 用glom切片水平
- vue.js - vueJS 路由器:从组件数据更新页面标题
- java - Apache Flink:如何从另一个流调用一个流
- python - Condas 环境不包括 pandas
- python - 我无法将我的 DataFrame 转换为变量来存储数据值/特征(线性判别分析)