Tag: linq

如何在xml数据的linq查询中使用TryParse?

我正在处理每日股票市场数据的内存xml,我得到其中一个日期的值“8/221/19055”。 我看到TryParse可能是检查有效日期的最佳选择,但MSDN doc似乎对第二个参数“out DateTime result”的解释很清楚。 我如何在下面的linq查询中使用它? var makeInfo = from s in doc.Descendants(“quote”) where s.Element(“LastTradeDate”) != null && s.Attribute(“symbol”) != null let dateStr = s.Element(“LastTradeDate”).Value where !string.IsNullOrEmpty(dateStr) && DateTime.Parse(dateStr, enUS) == targetDate select new DailyPricingVolDP((string)s.Attribute(“symbol”), (DateTime)s.Element(“LastTradeDate”), (double)s.Element(“Open”), (double)s.Element(“DaysHigh”), (double)s.Element(“DaysLow”), (double)s.Element(“LastTradePriceOnly”), (long)s.Element(“Volume”));

删除列表中的重复对象(C#)

所以我理解如何通过使用Linq的Distinct()来删除列表和int等列表中的重复项。 但是,如何根据对象的特定属性删除重复项? 例如,我有一个TimeMetric类。 此TimeMetric类有两个属性: MetricText和MetricTime 。 我有一个名为MetricList列表。 我想删除任何具有相同MetricText属性的重复TimeMetric 。 TimeMetric值可以相同,但如果任何TimeMetric具有相同的MetricText ,则它必须是不重复的。

如何使用Linq构建层次结构来对象?

我有一个数据结构列表: public List Personals() { return new List { new Personal { Id = 0, Name = “Name 0” }, new Personal { Id = 1, Name = “Name 1”, ParentId = 0 }, new Personal { Id = 2, Name = “Name 2”, ParentId = 0 }, new Personal { Id = 3, Name […]

linq到实体,where where子句在哪里? (内在哪里)

我有一个表与一对多映射到一个表,该表具有多个到另一个表的映射。 我想做以下事情: var results = context.main_link_table .Where(l => l.some_table.RandomProperty == “myValue” && l.some_table.many_to_many_table .Where(m => m.RandomProperty == “myValue”)); 我怎样才能做到这一点? 第一部分可以工作,但是在没有’内部WHERE’的情况下尝试它时,我无法访问many_to_many_table的属性,但“内在的地方”显然无法编译。 我基本上想要实现类似下面的SQL查询: SELECT * from main_link_table INNER JOIN some_table AS t1 ON t1.association = main_link_table.association INNER JOIN many_to_many_table AS t2 ON t2.association = some_table.association WHERE t1.RandomProperty = ‘MyValue’ AND t2.RandomProperty = ‘MyValue’ 它看起来很简单,但我无法找到一种方法来实现它在一行linq中 – 使用多行来实现所需的效果返回太多的结果,我最终不得不循环它们。 我也尝试过这样的东西: […]

PagedList使用LINQ Skip and Take,但使用Count of results显示分页

我试图显示一个过滤的产品列表,基于Categoryfilter和ItemsPerPage但我在尝试与PagedList一起使用时遇到了一些问题。 如果我需要编写自己的分页代码,或者有办法使用PagedList获得我需要的结果,那么具有PagedList专业知识的人可以建议我。 我正在使用LINQ的Skip&Take函数来仅获取当前页面上需要显示的行数,但我仍然希望根据filter的总计数来分页链接以显示页面。 例如:我的搜索filter找到50个结果,但由于我每页的行数是10个项目,我使用LINQ的Skip()和Take()只返回10行。 我仍然需要在我的View.cshtml中显示页面链接<< 1 | 2 | 3 | 4 | 5 >>现在使用默认的PagedList,我只得到<> ,我知道为什么我只看到一个页面,但我只想知道如何使其工作以显示正确数量的页面链接,而只获得一个子集结果 **我的目标是将优化的查询写入数据库,以便网页响应性能快速。 这是我的Action方法的代码。 代码获得了正确的结果,但分页不起作用,因为我需要它: public ViewResult List(int page =1, string category =null) { if (category != null) this.CurrentCategory = category; var products = repository.Products .Where(p => this.CurrentCategory == null || p.Category == this.CurrentCategory) .OrderBy(p => p.ProductID) .Skip((page -1) * PageSize) […]

如何在c#中使用两个列表的笛卡尔连接?

如何将两个带有整数的列表的笛卡尔连接加入其中? 这可以用linq完成吗?

IEnumerable .Reverse是如何工作的?

我正在检查reflection器中的代码,但我还没有发现它如何通过一个集合向后枚举? 由于没有计数信息,枚举总是从集合的“开始”开始,对吧? 它是.NET框架中的缺点吗? 成本是否高于常规枚举?

LINQ to Entities相当于sql“TOP(n)WITH TIES”

我最近在sql server中一直在寻找LINQ等同于WITH TIES ,我遇到了一些事情,这些事情无法发挥作用。 我知道这个问题之前被问过并且有一个已接受的答案,但它并不像领带那样有效 。 使用GroupBy()的解决方案不会出现TOP(3) WITH TIES预期结果,考虑到由{3 2 2 1 1 0}组成的数据集,结果集将是{3 2 2 1 1} ,其应该是{3 2 2} 使用以下示例数据(取自此问题) : CREATE TABLE Person ( Id int primary key, Name nvarchar(50), Score float ) INSERT INTO Person VALUES (1, ‘Tom’,8.9) INSERT INTO Person VALUES (2, ‘Jerry’,8.9) INSERT INTO Person VALUES (3, ‘Sharti’,7) INSERT […]

如何左外连接c#中的两个DataTable?

我如何保持左外连接(我认为它是左外连接,但我不是100%确定)两个数据表具有以下表和条件,同时保留两个表中的所有列? dtblLeft: id col1 anotherColumn2 1 1 any2 2 1 any2 3 2 any2 4 3 any2 5 3 any2 6 3 any2 7 any2 dtblRight: col1 col2 anotherColumn1 1 Hi any1 2 Bye any1 3 Later any1 4 Never any1 dtblJoined: id col1 col2 anotherColumn1 anotherColumn2 1 1 Hi any1 any2 2 1 Hi […]

将几个类似的SELECT表达式组合到一个表达式中

如何将几个相似的SELECT表达式组合成一个表达式? private static Expression<Func> CombineSelectors(params Expression<Func>[] selectors) { // ??? return null; } private void Query() { Expression<Func> selector1 = x => new AgencyDTO { Name = x.Name }; Expression<Func> selector2 = x => new AgencyDTO { Phone = x.PhoneNumber }; Expression<Func> selector3 = x => new AgencyDTO { Location = x.Locality.Name }; Expression<Func> selector4 […]