标签: ienumerable

在 Html.ActionLink() 中创建动态链接文本和链接

我想在下拉列表中创建 `@Html.ActionLink(model.country, "Details", "Country")' 作为选项..因为稍后,不同的角色访问将看到不同的链接...

控制器

    public ActionResult Index()
    {
        CountryList = db.CountryListTable.Select(x => x.countryName).ToList();
        ViewBag.ctr = CountryList;
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

看法

    @foreach (var item in @ViewBag.ctr)
    {
            <span>@item</span>
            <span>
            @* @Html.ActionLink((string)@item, "Details", "Country"); *@ @* this part throw error due to null *@
            </span>
            <br />
    }
Run Code Online (Sandbox Code Playgroud)

@item不为空...我不知道为什么它在封装时抛出空值@html.ActionLink...

仅供参考,我使用 .netFramework 4.0 和 MVC4...

我对 MVC n .netFramework 很陌生

c# asp.net-mvc ienumerable linked-list razor

0
推荐指数
1
解决办法
1万
查看次数

C#,使用多个 .Where() 语句过滤 IEnumerable,性能下降

我有一个 IEnumerable,我正在通过 .Where 表达式对其应用多个过滤器。我的代码看起来像这样

public List<MyObject> FilteringFunction(List<MyObject> listToFilter, List<Filter> filters)
{
    // A dirty way to have an enumerable instead of List
    var enumerableToFilter = listToFilter.Where(x => true);

    foeach(var filter in filters)
    {
        enumerableToFilter = enumerableToFilter.Where(x => x.Value.Contains(filter.Value));
    }

    return enumerableToFilter.ToList();

}
Run Code Online (Sandbox Code Playgroud)

我是否只遍历我的集合一次?(因为我只有一个使用 LINQ to SQL 的数据库调用)

c# linq performance ienumerable linq-to-entities

0
推荐指数
1
解决办法
3221
查看次数

在 C# 中遍历对象属性

我有一个客户类型对象列表,当我遍历该列表时,我希望能够遍历每个客户的属性。然后我想将该属性值打印为字符串。我收到 StackOverFlowException 错误。

让我先说:

  1. 这只是一个类库,我从其他地方调用该函数并且调用有效。
  2. 对数据库的调用及其返回的信息是正确的(我在尝试遍历属性之前对其进行了测试)
  3. 我的最终目标是将客户列表转换为二维数组,其中每列代表一个客户,每行代表客户属性。

提前致谢!

    using Dapper;
    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Xml.Linq;
    using System.Reflection.Emit;
    using System.Reflection;
    using System.Collections;

    namespace AtoCLib
    {
        public class DataAccessLayer
        {
            public static List<Customer> GetCustomerList(string startChar)
            {
                string sql = $"SELECT TOP (10) P.LastName, [CustomerID],[PersonID] ,[StoreID] ,[TerritoryID] ,[AccountNumber] FROM [AdventureWorks2017].[Sales].[Customer] C INNER JOIN [Person].[Person] P ON C.CustomerID = P.BusinessEntityID WHERE P.LastName >= '{startChar}'";
                List<Customer> CustomerList = new List<Customer>();

                try
                {
                    using (var connection = new SqlConnection("Data Source=SHCP-2035;Initial Catalog=AdventureWorks2017;Integrated Security=True"))
                    { …
Run Code Online (Sandbox Code Playgroud)

c# stack-overflow ienumerable ienumerator properties

0
推荐指数
2
解决办法
2万
查看次数

如何通过 IEnumerable 访问 foreach 迭代中的下一个和上一个项目?

我想在处理当前项目并迭代时访问下一个和上一个项目(如果在范围内)IEnumerable<object>,它缺少索引器(据我所知)。

我不想需要一个List<object>集合或一个数组来实现这一点,尽管这是我现在知道的唯一选择。

如果可能,我也更愿意避免使用 Linq 表达式。

目前我的方法是这样定义的:

public static void PrintTokens(IEnumerable<object> tokens)
{
    foreach (var token in tokens)
    {
        // var next = ?
        // var prev = ?
    }
}
Run Code Online (Sandbox Code Playgroud)

c# ienumerable foreach

0
推荐指数
1
解决办法
3287
查看次数

IEnumerable&lt;Movies&gt; 不包含 FirstOrDefaultAsync() 的定义

这是我的错误消息:“IEnumerable”不包含“FirstOrDefaultAsync”的定义,并且找不到接受“IEnumerable”类型的第一个参数的可访问扩展方法“FirstOrDefaultAsync”(您是否缺少 using 指令或程序集引用? )

我已执行以下操作,但错误仍然存​​在:

  1. 我没有忘记使用 await,根据此链接:任务不包含“FirstOrDefault”的定义

  2. 我引用了 Sytem.Core 并导入了 System.Linq 和 System.Data.Entity。(System.Linq 不明确/灰色,因此未使用),根据此链接:DbSet 不包含 FirstOrDefault 的定义?

这是我的 .cshtml.cs 代码,其中正在生成错误(第 34 行):

using System.Collections.Generic;
using System.Linq;
using System.Data.Entity;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using Movies.Models;

namespace Movies.Pages.MediaDetails
{
    public class DetailsModel : PageModel
    {
        private readonly Movies.Models.MoviesContext _context;

        public DetailsModel(Movies.Models.MoviesContext context)
        {
            _context = context;
        }

        MovieDataAccessLayer objmovie = new MovieDataAccessLayer();

        public Movies Movies { get; set; }

        public async Task<IActionResult> OnGetAsync(byte? id)
        {
            if …
Run Code Online (Sandbox Code Playgroud)

t-sql asp.net ienumerable async-await razor-pages

0
推荐指数
1
解决办法
5349
查看次数

检查 IEnumerable 的大小是否大于某个给定值的最快方法是什么?

我知道您可以使用enumerable.Any()而不是有效enumerable.Count()地检查集合中是否有任何内容。

是否有等效的检查尺寸至少是更大的尺寸?

例如,我将如何有效地执行enumerable.Count() > 3.

.net c# ienumerable count

0
推荐指数
1
解决办法
188
查看次数

如何正确实现 IEnumerable 以返回要由属性确定优先级的项目?

我的目标是Foo从与Boo枚举条件匹配的 foos 列表中返回第一个项目,并且应该按Boo示例中所示的值确定优先级,如果没有任何项目与条件匹配,则只返回第一个项目。

该模型:

class Foo 
{
    E_Boo Boo { get; set; }
}
enum E_Boo
{
    Undefined = 0,
    Jessie = 1,
    Abby = 2,
    Felix = 3,
    Lacey = 4,
    Lucia = 5,
    Anisa = 6    
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的,它有效:

    public Foo GetFooByBooPriority(IEnumerable<Foo> foos)
    {
        if(foos.Any(x => x.Boo == E_Boo.Abby))
            return foos.First(x => x.Boo == E_Boo.Abby);
        else if (foos.Any(x => x.Boo == E_Boo.Lacey))
            return foos.First(x => x.Boo == E_Boo.Lacey);
        else if (foos.Any(x => x.Boo …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable .net-core

0
推荐指数
1
解决办法
65
查看次数

如何返回 FirstOrDefault

我有我只想返回一条记录的方法,但我不能使用FirstOrDefault. 与数据库的连接工作正常,我已经尝试过了。

我想找到传递一些值的记录。

这是我尝试过的:

public async Task<CorridoioWebResponse> GetCorridoiWeb_ID(string stab, string maga, string area, Int32 cors)
{
    string strsql = string.Empty;
    string strErrore = string.Empty;
    string strConnessione = _configuration.GetConnectionString("ConnDB");
    SqlServerCompiler compiler = new SqlServerCompiler();
    CorridoioWebResponse coridoio;
    using (IDbConnection cn = new SqlConnection(strConnessione))
    {
        using (var db = new QueryFactory(cn, compiler))
        {
            strsql = "SELECT * from tmhit.CORRIDOI_CORSIE WHERE STAB=" + stab + "AND MAGA =" + maga + "AND AREA=" + area + "AND CORS=" + cors;
            //strsql = …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server generics ienumerable

0
推荐指数
1
解决办法
165
查看次数

字符串上的 Any()

我不明白引擎盖下发生了什么。我有一个简单的字符串:

 var aux = "Hello";
Run Code Online (Sandbox Code Playgroud)

如果我运行:

aux.Any();
Run Code Online (Sandbox Code Playgroud)

它返回True。执行的Any()在 System.Core dll 中:

在此处输入图片说明

在引擎盖下是否有一个演员表,其中字符串被转换为一个可枚举的字符并且Any()验证列表是空的还是......?

提前致谢!

c# linq ienumerable

0
推荐指数
1
解决办法
82
查看次数

当我们可以使用 foreach() 迭代集合时,为什么要使用 IEnumerable&lt;T&gt;

我想知道我们应该使用的确切位置IEnumberable<T>

我知道如何IEnumerable<T>工作和返回IEnumerator<T>以及所有这些,但最终目标IEnumerable<T>是从集合中查询数据不是吗?这就是我们已经可以使用 foreach() 循环做到的事情吗?那么什么时候使用IEnumerable<T>呢?IEnumerable<T>查询集合的唯一选项的实际场景是什么?

.net c# asp.net ienumerable .net-core

0
推荐指数
1
解决办法
167
查看次数