Tag: linq

我怎样才能从一个方法返回一个匿名types?

我有一个Linq查询,我想从多个地方调用: var myData = from a in db.MyTable where a.MyValue == "A" select new { a.Key, a.MyValue }; 我怎样才能创build一个方法,把这个代码放在里面,然后调用它呢? public ??? GetSomeData() { // my Linq query }

linq案例陈述

我需要一些在LINQ(C#)CASE语句的帮助: osc_products.products_quantity = CASE WHEN itempromoflag <> 'N' THEN 100000 WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000 WHEN itemsalestatus = 'O' THEN 0 ELSE cds_oeinvitem.itemqtyonhand – cds_oeinvitem.itemqtycommitted END 我开始转换到LINQ,(我还在学习): cdsDBDataContext db = new cdsDBDataContext(); var query = from items in db.cdsItems where items.ItemHandHeldFlag.Equals("Y") && items.ItemQtyOnHand – items.ItemQtyCommitted > 0 select items; 此查询将库存状态从生产更新到商业网站。

包含命名空间的XDocument

我有下面的XML,我试图用XDocument查询: <E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"> <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"> <EventID>589828</EventID> <Type>3</Type> <SubType Name="Information">0</SubType> <Level>8</Level> <TimeCreated SystemTime="2010-06-01T09:45:15.8102117Z" /> <Source Name="System.ServiceModel" /> <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" /> <Execution ProcessName="w3wp" ProcessID="5012" ThreadID="5" /> <Channel /> <Computer>TESTSERVER3A</Computer> </System> <ApplicationData> <TraceData> <DataItem> <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Information"> <TraceIdentifier>http://msdn.microsoft.com/en-GB/library/System.ServiceModel.Activation.WebHostCompilation.aspx</TraceIdentifier> <Description>Webhost compilation</Description> <AppDomain>/LM/W3SVC/257188508/Root-1-129198591101343437</AppDomain> <Source>System.ServiceModel.Activation.ServiceParser/39498779</Source> <ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/StringTraceRecord"> <VirtualPath>/Service.svc</VirtualPath> </ExtendedData> </TraceRecord> </DataItem> </TraceData> </ApplicationData> </E2ETraceEvent> 除了手动删除名称空间时,执行以下代码将为xEl1返回null: XDocument xDoc = XDocument.Parse(CurrentString); XElement xEl1 […]

跨多个数据库的LINQ

我有两个需要通过LINQ连接的表,但他们住在不同的数据库中。 现在,我返回一个表的结果,然后循环和检索另一个的结果,正如你可以猜到的是不是非常有效。 有什么办法让他们进入一个单一的LINQ声明? 有没有其他方法来构build这个避免循环? 我只是在寻找想法,以防万一我忽略了一些东西。 请注意,我不能改变数据库,即我不能创build一个引用另一个的视图。 我还没有尝试过的东西是在第三个数据库中创build视图引用这两个表。 任何想法欢迎。

我如何使用dynamicstring参数来执行OrderBy?

我想这样做: var orderBy = "Nome, Cognome desc"; var timb = time.Timbratures.Include("Anagrafica_Dipendente") .Where(p => p.CodDipendente == 1); if(orderBy != "") timb = timb.OrderBy(orderBy); 是否有一个OrderBy超载可用接受一个string参数?

System.LINQ.Dynamic:将Select(“new(…)”)select到List <T>(或任何其他的<T>的可枚举集合)

说我有一个DataTable与四列公司(string),基金(string),国家(string),价值(双): table1.Rows.Add("Company 1","Fund 1","NY",100)); table1.Rows.Add("Company 2","Fund 1","CA",200)); table1.Rows.Add("Company 3","Fund 1","FL",300)); table1.Rows.Add("Company 4","Fund 2","CA",400)); table1.Rows.Add("Company 5","Fund 1","NY",500)); table1.Rows.Add("Company 6","Fund 2","CA",600)); table1.Rows.Add("Company 7","Fund 3","FL",700)); 我想要使​​用System.LINQ.Dynamic构build一个dynamic查询,这个查询在公司,基金或者状态上进行分组,然后按照标准select我的组作为第一列,然后求和(value): string groupbyvalue="Fund"; var q1= table1.AsEnumerable().AsQueryable() .GroupBy(groupbyvalue,"it") .Select("new ("+groupbyvalue+" as Group, Sum(Value) as TotalValue)"); 在上面的查询中,所选的groupbyvalue(Group)将始终是一个string,总和将总是一个double,所以我想能够转换成类似List的东西,其中Result是具有属性的对象Group(string )和TotalValue(双)。 我遇到了很多麻烦,谁能解释一下?

如何计算与LINQ列表中的重复

我有一个项目列表 约翰 马特ID 约翰 Scott ID 马特ID 约翰 卢卡斯ID 我想把它们推回到这样的列表中,这也意味着我想按照最大数量的重复进行sorting。 约翰ID 3 马特ID 2 斯科特ID 1 卢卡斯ID 1 让我知道我怎么可以用LINQ和C#做到这一点。 谢谢大家 编辑2显示代码: List<game> inventory = new List<game>(); drinkingforDataContext db = new drinkingforDataContext(); foreach (string item in tbTitle.Text.Split(' ')) { List<game> getItems = (from dfg in db.drinkingfor_Games where dfg.game_Name.Contains(tbTitle.Text) select new game { gameName = dfg.game_Name, gameID […]

什么时候在Linq中使用Cast()和Oftype()

我知道两种从Linq的Arraylist中将types转换为IEnumerable方法,并想知道在哪些情况下使用它们? 例如 IEnumerable<string> someCollection = arrayList.OfType<string>() 要么 IEnumerable<string> someCollection = arrayList.Cast<string>() 这两种方法有什么区别,我应该在哪里应用每种情况?

通过任意深度的名称查询XDocument的元素

我有一个XDocument对象。 我想在任何深度使用LINQ查询具有特定名称的元素。 当我使用Descendants("element_name") ,我只获取当前级别的直接子元素。 我正在寻找的是相当于XPath中的“// element_name”…我应该只使用XPath ,还是有办法使用LINQ方法? 谢谢。

select不同的使用LINQ

我有class级的class级名单 public class LinqTest { public int id { get; set; } public string value { get; set; } } List<LinqTest> myList = new List<LinqTest>(); myList.Add(new LinqTest() { id = 1, value = "a" }); myList.Add(new LinqTest() { id = 1, value = "b" }); myList.Add(new LinqTest() { id = 2, value = "c" }); […]