Tag: linq

如何用reflection调用List 的扩展方法“ElementAt”?

我有问题,在创建List 类型的对象“oListType01”之后,在将其分配给另一个类型为“object”的objet“oObjectType”后,我无法访问任何更多的函数“ElementAt(1)”。 我尝试使用reflection,但我总是在“调用”方法中获得exception(参数冲突)。 有谁知道为什么? 米兰 MyClass01 oMy1 = new MyClass01(); oMy1._ID = “1”; MyClass01 oMy2 = new MyClass01(); oMy2._ID = “3”; IList oListType01 = new List(); oListType01.Add(oMy1); oListType01.Add(oMy2); object oObjectType = new object(); oObjectType = oListType01; 从这里fowrads只有对象oObjectType可用(在实际情况下向上发生在单独的函数调用中)。 在VS oObjectType中显示了我想要反映的两个元素。 MethodInfo mInfo = typeof(System.Linq.Enumerable).GetMethod(“ElementAt”).MakeGenericMethod(typeof(object)); object oSingleObject = mInfo.Invoke(oObjectType, new object[] { 1 });

entity framework6编译LINQ查询

我正在尝试通过缓存查询来提高Web应用程序的性能。 public static Func<myEntity, List, IQueryable> CompiledDuplicatedResponses = CompiledQuery.Compile<myEntity, List, IQueryable>( (db, hashes) => from r in db.FormResponse from h in db.IndexHASHes from d in hashes where r.id == h.FormResponseID && h.IndexHASHString == d.hash select r); 我收到的错误是在编译时: 类型’myEntity’不能在generics类型或方法’System.Data.Entity.Core.Objects.CompiledQuery.Compile(System.Linq.Expressions.Expression>)’中用作类型参数’TArg0’。 没有从’myEntity’到’System.Data.Entity.Core.Objects.ObjectContext’的隐式引用转换。 我正在使用EF6

EntityFramework中的公用表表达式

我在Sql Server中有这个查询,我需要在EntityFramework中使用,那么如何编写一个与此结果相同的EntityFramwork代码 WITH cte AS ( SELECT * FROM StockGroups WHERE GroupParent =’Stationery’ UNION ALL SELECT g.* FROM StockGroups g JOIN cte ON g.GroupParent = cte.GroupName ) SELECT * FROM cte 我不知道如何在EF中转换它,所以我试着加入。 from a in db.StockGroups join b in db.StockGroups on new { GroupParent = a.GroupParent } equals new { GroupParent = b.GroupName } where […]

linq&distinct,实现equals和gethashcode

所以我正在努力使这项工作,我似乎无法知道为什么它不起作用 演示代码; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var myVar = new List(); myVar.Add(new parent() { id = “id1”, blah1 = “blah1”, c1 = new child() { blah2 = “blah2”, blah3 = “blah3” } }); myVar.Add(new parent() { id = “id1”, blah1 = “blah1”, c1 = new child() { blah2 […]

Zip N IEnumerable 一起? 同时迭代它们?

我有:- IEnumerable<IEnumerable> items; 而且我想创造: – IEnumerable<IEnumerable> results; 其中“结果”中的第一项是“项目”的每个IEnumebles的第一项的IEnumerable,“结果”中的第二项是每个“项目”的第二项的IEnumerable等。 IEnumerables不一定是相同的长度。 如果项目中的某些IEnumerables在特定索引中没有元素,那么我希望结果中匹配的IEnumerable中包含更少的项目。 例如:- items = { “1”, “2”, “3”, “4” } , { “a”, “b”, “c” }; results = { “1”, “a” } , { “2”, “b” }, { “3”, “c” }, { “4” }; 编辑:另一个例子(评论中要求): – items = { “1”, “2”, “3”, “4” } , { […]

Linq嵌套列表表达式

我需要你对Linq表达的帮助: 我有嵌套的列表对象,这是主对象层次结构的样子(每个破折号是子类的属性): Folder -name -List Subfolders -name -List Documents -name -key 拥有这个对象层次结构,我有一个文档名称,我想搜索它并返回其父文件夹(子文件夹) 例: Folder -name: Customer -List Subfolders -name: Personal -List Documents -name: Resume -key : 1 如果我说:“恢复”,linq表达式应该返回我:子文件夹“Personal”(对象)。 请帮助我,因为有两个嵌套的列表我遇到了麻烦,一个很容易。 提前致谢。

LINQ to Entities无法识别方法’Int32

public ActionResult ReadXMLDevices(int groupID) { var query = from k in XMLEntities.unassigneditems where k.DevOrAcc == true && k.Group == groupID select k; var view_query = from i in query select new GetFreeDevices { MArticleNumber = i.ArticleNumber, MFirmware = i.Firmware, MGroup = i.Group, MName = i.Name, MSoftware = i.SoftwareVersion, SA = GetNumberOfDevices(i.ArticleNumber,2), STH = GetNumberOfDevices(i.ArticleNumber,3), SASTH […]

LINQ vs foreach vs性能测试结果

有人可以解释这些结果吗? 我知道有一些重复的问题,但我还没有找到一个与我的结果得出相同结论的问题:o using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SpeedTest { class Person { public Person(string name) { this.Name = name; } public string Name { get; set; } } class Program { static void Main(string[] args) { var people = new List(); AddTwins(“FRANCISCO”, people); var stopwatch = new […]

GroupBy on complex object(例如List )

使用GroupBy()和Count() > 1我试图在列表中查找我的类的重复实例。 这个类看起来像这样: public class SampleObject { public string Id; public IEnumerable Events; } 这就是我实例化和分组列表的方式: public class Program { private static void Main(string[] args) { var items = new List() { new SampleObject() { Id = “Id”, Events = new List() { “ExampleEvent” } }, new SampleObject() { Id = “Id”, Events = new […]

在LINQ中选择一个多维数组

我有一个任务,我需要将DataTable转换为二维数组。 只需循环遍历行和列就可以轻松完成(参见下面的示例)。 private static string[,] ToArray(DataTable table) { var array = new string[table.Rows.Count,table.Columns.Count]; for (int i = 0; i < table.Rows.Count; ++i) for (int j = 0; j < table.Columns.Count; ++j) array[i, j] = table.Rows[i][j].ToString(); return array; } 我真正想做的是在LINQ中使用select语句来生成该2D数组。 不幸的是,看起来在LINQ中没有办法选择多维数组。 是的,我知道我可以使用LINQ来选择锯齿状arrays,但这不是我想要的。 我的假设是正确的,还是有办法使用LINQ来选择多维数组?