草庐IT

c# - 列表在调试器中显示 4 个项目,即使只填充了一个元素

当我在调试器中查看填充有单个项目的列表时,其_items字段包含4个元素。你能解释一下这种行为吗?我发现,在调试我的控制台应用程序以了解Distinct和ToList时,结果让我感到困惑。代码:Listnums=newList(){6,6,6,6,6,6,6,6};ListdistinctNums=nums.Distinct().ToList();int[]distinctNums2=nums.Distinct().ToArray();distinctNums在_items中有4个元素:(6,0,0,0)这显然是错误的。distinctNums2有1项(6)是正确的。

c# - LINQ to Entities 无法识别方法 'Int32 IndexOf(System.String, System.StringComparison)' 方法

我已经使用Entityframework执行了一个linq查询,如下所示GroupMastergetGroup=null;getGroup=DataContext.Groups.FirstOrDefault(item=>keyword.IndexOf(item.Keywords,StringComparison.OrdinalIgnoreCase)>=0&&item.IsEnabled)执行此方法时出现如下异常LINQtoEntitiesdoesnotrecognizethemethod'Int32IndexOf(System.String,System.StringCompariso

c# - 在 LINQ to SQL 中返回结果集之前检查记录是否存在

我正在寻找一种简单的解决方案来取代我在尝试检索数据之前验证记录是否存在的标准化垃圾方式。目前,每当调用我的方法之一时,我都会做一些事情...privateRecordDoSomething(intid){if(data.Records.Count(q=>q.Id==id)>0){returndata.Records.First(q=>q.Id==id);}returnnull;}...我总是检查记录数以确定记录是否存在。必须有一种更“优雅”的方式来做到这一点,而无需两次调用数据库。有办法吗? 最佳答案 有很多干净的方法可以处理这个问

c# - LINQ 相交,多个列表,一些为空

我正在尝试寻找与LINQ的交叉点。示例:Listint1=newList(){1,2};Listint2=newList();Listint3=newList(){1};Listint4=newList(){1,2};Listint5=newList(){1};想要返回:1,因为它存在于所有列表中。如果我运行:varintResult=int1.Intersect(int2).Intersect(int3).Intersect(int4).Intersect(int5).ToList();它什么都不返回,因为1显然不在int2列表中。无论一个列表是否为空,我如何让它工作?使用上面的例子

c# - 使用 Linq 选择类的属性以返回 IEnumerable<T>

如果我有一个SortedList我想退回一个新的IEnumerable该类的属性我该怎么做?我试过了SortedList.Select(x=>x.MyProperty,x.AnotherProperty)但它不起作用。谢谢。 最佳答案 你可以返回一个匿名对象:varresult=SortedList.Select(x=>new{x.Value.MyProperty,x.Value.AnotherProperty});或者如果你想在当前方法的范围之外使用结果,你可以定义一个自定义类型:IEnumerableresult=SortedL

c# - LINQ to XML - 使用前缀访问后代

我有一个这样的示例xml文件NameaddressZip所有节点的前缀值都为vs,谁能告诉我如何解析此文件以读取名称和地址信息?我对LINQ很陌生。对此的任何帮助将不胜感激。谢谢! 最佳答案 您需要知道命名空间是什么。这将在早些时候声明,类似于:xmlns:vs="http://some_url_here"可以使用XNamespace查询:XNamespacevs="http://some_url_here";varnames=doc.Descendants(vs+"Name").Select(x=>(string)x).ToLis

c# - 如何找到字符串中所有可能的子串?

我想做的是获取一个字符串并返回所有可能的长度大于2的子字符串。因此使用welcome示例:weellccomewelelclcocomomewelcelcolcomcomeandsoon.....我能想到的唯一方法是这样的(完全未经测试):for(inti=0;i但我想知道是否有我不知道的更好的方法(可能使用LINQ)? 最佳答案 这种简单易读的方法怎么样?vartext="welcome";varquery=fromiinEnumerable.Range(0,text.Length)fromjinEnumerable.Range(

c# - 使用 Newtonsoft.Json 解析 JSON 时出错

当我尝试使用Newtonsoft.Json解析我的JSON时出现以下错误Responseresult=JsonConvert.DeserializeObject(unfilteredJSONData);CannotaddpropertystringtoNewtonsoft.Json.Linq.JObject.Propertywiththesamenamealreadyexistsonobject.我无法控制JSON提要,他们只是添加了flags1和flags2。重复的字符串似乎是导致错误的原因,但我不知道如何解决它。在添加新字段之前,此代码运行良好。更新:第一个错误是由使用过时版本的J

c# - 如何使用 Entity Framework/LINQ 从特定表中提取元组列表?

我需要使用EntityFramework从C#.NET中的一个大表中提取一对“ID”/“名称”的列表。我试试这个请求:List>list=(fromresindb.ResourceselectnewTuple(res.Resource_ID,res.Name)).ToList();但不幸的是我遇到了这个错误:OnlyparameterlessconstructorsandinitializersaresupportedinLINQtoEntities.我不明白如何使用这个框架提取这个元组列表,我对这个错误感到有点迷茫。你能帮助我理解和解决我的问题吗?最好的问候,亚历克斯

c# - Linq 选择与 ID 列表匹配的记录

是否可以更改下面的查询,以便它在包含类型查询中使用types列表。所以与其拥有:varcust=db.Customers.Where(x=>x.type_id==9||x.type_id==15||x.type_id==16).ToList();...我想要这样的东西:Listtypes=newList{9,15,16};varcust=db.Customers.Where(x=>types.contains(x.type_id).ToList();(type_id不是主键)谢谢,标记 最佳答案 是的,方法List.Contains