C#字符串拆分 - 索引越界

Zip*_*ppy 6 c# string

我的大脑现在累了,不能想出一个简单的解决方案.

var res = error.Split('|');
return String.Format("Name: {0} <br /> Email: {1}", res[0] , res[1]);
Run Code Online (Sandbox Code Playgroud)

如果没有| 然后它抛出一个错误,这将是一个快速和优雅的方式来只是抛出一个默认的"无名称"或传递它.我只关心位置[0]和[1].

样本数据

Tom | huntard@123.com
Tom
Tom | huntard@123.com
Tom | huntard@123.com | texas
Run Code Online (Sandbox Code Playgroud)

我需要一个redbull.

luk*_*san 7

您可以使用命名空间中的ElementAtOrDefault()扩展方法System.Linq与null-coalescing operator(??)结合使用,以获得优雅的解决方案:

return String.Format("Name: {0} <br /> Email: {1}", 
    res.ElementAtOrDefault(0) ?? "No name", 
    res.ElementAtOrDefault(1) ?? "No email");
Run Code Online (Sandbox Code Playgroud)