在 ASP.NET MVC-3 中显示没有 foreach 循环的数组列表

发布于 2024-12-10 07:48:33 字数 384 浏览 0 评论 0原文

我想从 XML 文件中检索数组列表。我使用集成工具进行查询。但是,如果我想创建一个没有任何 foreach 循环的数组列表,我该怎么办? (原因是,在这种情况下无法应用 foreach。

XML 文件格式:

<arr name="ArrayinXML"><str>dsfadasfsdasda</str><str>gdhsdhshhfb</str>

在 Index.cshtml 中:

@p.ArrayinXML.FirstOrDefault()

在上述情况下,它仅返回第一个字符串值,而不返回第二个字符串值。

I want to retrieve a list of array from XML file. I use an integration tool for querying. But what should I do if I want to create a list of arrays without any foreach loop. (Reason is, in this case foreach cannot be applied.

XML File Format:

<arr name="ArrayinXML"><str>dsfadasfsdasda</str><str>gdhsdhshhfb</str>

In Index.cshtml:

@p.ArrayinXML.FirstOrDefault()

In the above case, it returns only the first string value and not the second one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜宝宝 2024-12-17 07:48:33

你能创建一个扩展方法来为你执行 foreach 吗?

像这样的事情:

public static class IEnumerableExtensions
{
    public static string ToString<T>(this IEnumerable<T> collection, string separater)
    {
        if (collection == null)
            return String.Empty;

        return String.Join(separater, collection);
    }
}

当然,您可以在代码中调用 @String.Join(p.ArrayinXML, ", ") ,但我认为扩展方法使其更加优雅。

然后将扩展名称空间添加到 web.config 中,您可以在视图中执行此操作:

@p.ArrayinXML.ToString(", ")

编辑:

这是带有转换参数的扩展,以便您可以进一步自定义:

public static string ToString<T>(this IEnumerable<T> collection, string separater, Func<T, object> transform) where T : class
{
    if (collection == null)
        return String.Empty;

    return String.Join(separater, collection.Select(s => transform(s).ToString()));
}

Can you make an extension method that does the foreach for you?

Something like this:

public static class IEnumerableExtensions
{
    public static string ToString<T>(this IEnumerable<T> collection, string separater)
    {
        if (collection == null)
            return String.Empty;

        return String.Join(separater, collection);
    }
}

You could, of course, just call @String.Join(p.ArrayinXML, ", ") in your code, but I think the extension method makes it a bit more elegant.

Then add the extension namespace to your web.config, and you can do this in the view:

@p.ArrayinXML.ToString(", ")

Edit:

Here's the extension with a transform parameter so you can customize further:

public static string ToString<T>(this IEnumerable<T> collection, string separater, Func<T, object> transform) where T : class
{
    if (collection == null)
        return String.Empty;

    return String.Join(separater, collection.Select(s => transform(s).ToString()));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文