Tag: linq

从string数组中删除所有空元素

我有这个: List<string> s = new List<string>{"", "a", "", "b", "", "c"}; 我想快速地(可能通过LINQ)从中删除所有的空元素("") ,而不使用foreach语句,因为这使得代码看起来很丑。

VS2013 Debugger + Entity Framework:“运行时拒绝评估expression式”,崩溃

在针对实时SQL Server的代码debuggingunit testing时,VS2013 Ultimatedebugging器中的Entity Framework 6.0.1遇到了很多问题。 包含实体的variables不能在debugging器中查看。 例如,如果我对我的DbContext执行LINQ查询并刷新结果视图以实际执行查询,则结果值为“子项无法评估”。 如果我ToArray()它,所以现在variables是一个实体的数组而不是一个IQueryable,数组中的每个结果是“无法评估expression式”。 如果我将该数组中的单个实体值存储到一个variables中并尝试查看它,则会得到“此时运行时拒绝评估expression式”。 通常,通过涉及访问实体属性的行,F10会导致Visual Studio崩溃。 这不会发生,如果我运行testing对嘲弄的假DbSet。 这是一个已知的问题? 有没有办法来解决这个问题?

C#Linq All&Any在空白数组上工作不同

考虑以下空白数组的LINQ示例: 当Any()返回false因为没有大于零的数字, All()返回true表示所有大于零的数字? var arr = new int[] { }; Console.WriteLine(arr.Any(n => n > 0)); //false Console.WriteLine(arr.All(n => n > 0)); //true

System.Collections.Generic.List不包含“select”的定义

这个错误发生在我的“Views”文件夹中的许多文件中: 'System.Collection.GenericList'不包含接受'System.Collections.GenericList'types的第一个参数的'select'的定义(你是否缺lessusing指令或程序集引用?) 我已经尝试在文件顶部附近添加一些“使用System …”和其他基本库,但添加这些似乎没有任何帮助。 这是我的错误发生在以.BindTo(Model.Users.Select(o => o.UserName))开头的行中: 任何帮助将不胜感激。 谢谢! <div id="editRolesContainer" class="detailContainer detailContainer4"> <header class="sectionheader"> Add Roles </header> <ul id = "AdminSelectUserContainer" > <li> <ul style="padding: 0 0 0 5px"> <li>Select User : </li> <li> @using (Html.BeginForm("srch_GetUserRoles", "Admin", new { view = "Users_Roles" }, FormMethod.Post, new { name = "srch_GetUserRoles" })) { @(Html.Telerik().AutoComplete() .Name("acx_SelectUser") .BindTo(Model.Users.Select(o […]

LINQ:使用Lambdaexpression式获取CheckBoxList的所有选定值

考虑一个场景,你想要在<asp:CheckBoxList>检索所有选中checkbox的List或IEnumerable值。 这是当前的实现: IEnumerable<int> allChecked = (from item in chkBoxList.Items.Cast<ListItem>() where item.Selected select int.Parse(item.Value)); 问题 :如何使用lambdaexpression式或lambda语法来改进此LINQ查询?

findSQL语句的LINQ语句最简单的方法是什么?

我是销售ASP.NET MVC3应用程序的公司的SQL Server DBA,该应用程序使用LINQ和Entity Framework 4来访问所有数据库。 当我在LINQ生成的SQL Server计划caching中发现一个效率低下的查询时,我希望能够在源代码中find该LINQ语句,以便对其进行优化。 find生成给定SQL语句的LINQ的最佳方法是什么? 例如,有什么办法把一个条目放在一个configuration文件中,或者以某种方式修饰代码,以便类和方法名或LINQ语句本身作为注释包含在生成的SQL中?

Orderby()不正确sorting数字c#

我正在为我的公司编写一个应用程序,目前正在进行searchfunction。 当用户search一个项目时,我想显示最高版本(存储在数据库中)。 问题是,版本被存储为一个string而不是int,当我对结果执行OrderBy(q => q.Version)时,它们将被返回 1 10 11 2 3 … 2显然是在10之前。 有没有办法让我把整个版本作为一个整数或有一个简单的IComparer在那里? 到目前为止我找不到任何实质性的东西。 我试过这样做: var items = (from r in results select r).OrderBy(q => Int32.Parse(q.Version)); 这编译但不起作用。

将IOrderedEnumerable <KeyValuePair <string,int >>转换为Dictionary <string,int>

我正在回答另一个问题 ,我得到了: // itemCounter is a Dictionary<string, int>, and I only want to keep // key/value pairs with the top maxAllowed values if (itemCounter.Count > maxAllowed) { IEnumerable<KeyValuePair<string, int>> sortedDict = from entry in itemCounter orderby entry.Value descending select entry; sortedDict = sortedDict.Take(maxAllowed); itemCounter = sortedDict.ToDictionary<string, int>(/* what do I do here? */); } Visual […]

为什么IQueryable.All()在空集合上返回true?

所以今天遇到了一些情况,一些生产代码不能正确地执行,因为一个方法完全按照MSDN的规定执行 。 因为我没有阅读文档而感到羞耻。 然而,即使“devise上”,我仍然在为自己的行为而挠头,因为这种行为与我期望的(和其他已知的行为)完全相反,因此似乎违反了原则最less的惊喜。 All()方法允许您提供谓词(如lambdaexpression式)来testingIQueryable ,并返回一个布尔值,指示所有集合成员是否匹配testing。 到现在为止还挺好。 这是奇怪的地方。 如果集合是空的, All()也返回true 。 这似乎完全倒退给我,原因如下: 如果这个集合是空的,像这样的testing最好是未定义的。 如果我的车道是空的,我不能断言所有停在那里的车都是红色的。 有了这个行为,在一个空的车道上,所有停在那里的车都是红色的,蓝色的和棋盘格 – 所有这些expression式都会返回true。 对于熟悉SQL!的人来说,NULL!= NULL,这是意料之外的行为。 Any()方法的行为与预期相同,并且(正确)返回false,因为它没有任何与谓词相匹配的成员。 所以我的问题是,为什么All()这样做? 它解决了什么问题? 这是否违反了最小惊喜的原则? 我把这个问题标记为.NET 3.5,但是这个行为也适用于.NET 4.0。 编辑好的,所以我把握这个逻辑层面,就像杰森和你其他人一样。 诚然,一个空的收集是一个边缘的情况下。 我想我的问题是根植于这样一种斗争,即只是因为某些东西是合乎逻辑的 ,并不意味着如果你不在正确的思维范围内,这是有道理的。

不能将types'System.Collections.Generic.IEnumerable <AnonymousType#1>'隐式转换为'System.Collections.Generic.List <string>

我有下面的代码: List<string> aa = (from char c in source select new { Data = c.ToString() }).ToList(); 但是关于 List<string> aa = (from char c1 in source from char c2 in source select new { Data = string.Concat(c1, ".", c2)).ToList<string>(); 编译得到错误 不能将types'System.Collections.Generic.List<AnonymousType#1>'隐式转换为'System.Collections.Generic.List<string>' 需要帮忙。