c# - 如果没有超出范围,则从数组中获取值

标签 c# arrays

我正在寻找最优雅的解决方案,以便在请求的索引未超出范围时从 object[] 获取值。

我目前的解决方案如下:

    public object GetNamedParametersFrom(GenericObject genericObject)
    {
        string nameFromListOne = String.Empty;
        string nameFromListTwo = String.Empty;

        for (int i = 0; i < genericObject.ListOfThings.Count; i++)
        {
            switch (i)
            {
                case 0:
                    nameFromListOne = genericObject.ListOfThings[i].Name;
                    break;
                case 1:
                    nameFromListTwo = genericObject.ListOfThings[i].Name;
                    break;
            }
        }

        return new {
           nameFromListOne,
           nameFromListTwo
        }
    }

最佳答案

为什么不使用内置的 ElementAtOrDefault来自 Linq 的方法?

string[] names =
    { "Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow",
        "Hedlund, Magnus", "Ito, Shu" };

int index = 20;

string name = names.ElementAtOrDefault(index);

关于c# - 如果没有超出范围,则从数组中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30341810/

相关文章:

c# - 使用集合参数对集合属性进行 Linq 查询

c# - 如何为存储过程编写映射

Javascript - 如何访问这个字符串数组中的单词?

java - 我们如何在 java 中使用数组元素作为计数器?

c - 不理解自定义 C shell 的逻辑

c# - 在打开的页面之间传递参数的最佳实践

c# - 具有不同线程安全模式的 System.Lazy<T>

c# - 如何使用SSIS包从网站url下载文件

c - 关于 C 中数组和普通值的指针用法

JavaScript 卡在 "for"循环