草庐IT

c# - LINQ:获取表列名称

如何使用LINQ获取表的列名?C#3.0、3.5框架 最佳答案 也许为时已晚,但我通过这段代码解决了这个问题vardb=newDataContex();varcolumnNames=db.Mapping.MappingSource.GetModel(typeof(DataContex)).GetMetaType(typeof(_tablename)).DataMembers; 关于c#-LINQ:获取表列名称,我们在StackOverflow上找到一个类似的问题:

c# - Linq 中 DateTime 的 FirstOrDefault 是什么?

如果我有一个返回DateTime的查询,FirstOrDefault()的值是多少?是否有通用方法来获取C#标量的默认值?示例:varlist=(fromitemindb.Itemswhereitem.ID==1234selectitem.StartDate).FirstOrDefault();编辑:假设StartDate列不能为空。 最佳答案 获取给定泛型类型的默认值的通用方法是:default(T)其中T是相关的通用类型参数。对于引用类型,这将产生null。对于值类型,这将产生值的零实例。对于DateTime,这将等同于Date

c# - 使用 linq 从键中获取值

我有来自字符串键的字典,我想使用Linq获取相应键的值 最佳答案 为什么要使用LINQ从字典中获取值?您可以使用以下方法获取值:intvalue=dictionary[key];你可以使用Single,但它完全没有意义,需要更多代码:varkeyValuePair=dictionary.Single(x=>x.Key==key);intvalue=keyValuePair.Value; 关于c#-使用linq从键中获取值,我们在StackOverflow上找到一个类似的问题:

c# - 在给定属性的列表中获取项目的索引

在MyListList可能有一个Person及其Name属性设置为“ComTruise”。我需要在MyList中第一次出现“ComTruise”的索引,但不是整个Person元素。我现在做的是:stringmyName=ComTruise;intthatIndex=MyList.SkipWhile(p=>p.Name!=myName).Count();如果列表很大,有没有更优的方式获取索引? 最佳答案 你可以使用FindIndexstringmyName="ComTruise";intmyIndex=MyList.FindIndex

c# - 如何使用 Linq 对每 N 行进行分组

我找不到一种方法来完成这项工作,希望有人有想法。一个简化的例子是有一个整数1-100的列表,我想每3行分组一次,所以结果在第一组中为1、2、3,然后在下一组中为4、5、6等。我知道如何获取每第n条记录,但我需要的是所有记录,这样我就可以使用first、last、sum、max等来聚合它们。谢谢! 最佳答案 此示例适用于查询非数字集合。它将索引投影到要分组的对象中,然后在分组过程中再次删除它。varstudentQuery2=students.Select((student,index)=>new{student,index}).Gr

c# - 使用 linq foreach 更新 2 个字段

我可以使用linqforeach循环一次更新2个字段吗?样本片段:我有一个包含名称、电子邮件、CreateTime、LastUpdateTime字段的用户数据。我必须为所有用户重置CreateTime和LastUpdateTime。要更新,我使用如下2个调用users.ForEach(x=>x.CreateTime=DateTime.Now.AddMonths(-1));users.ForEach(x=>x.LastUpdateTime=DateTime.Now);我可以使用linqforeach循环一次完成吗? 最佳答案 开始吧,

C#:改变数组中每一项的值

我想知道是否有内置的.NET功能可以根据提供的委托(delegate)的结果更改数组中的每个值。例如,如果我有一个数组{1,2,3}和一个返回每个值的平方的委托(delegate),我希望能够运行一个接受数组和委托(delegate)的方法,并返回{1,4,9}。是否已经存在这样的东西? 最佳答案 LINQ使用Select提供对投影的支持扩展方法:varnumbers=new[]{1,2,3};varsquares=numbers.Select(i=>i*i).ToArray();你也可以使用稍微不太流畅的Array.Convert

c# - 使用 Linq 选择对象上的所有列

我有一个问题:vartransactions=fromtindb.Transactionswheret.SellingPrice!=0selectnew{t.CommissionPercent,t.SellingPrice};但实际上,我需要避免使用匿名类型,因为它是只读的,并选择我的“交易”项目上的所有属性/列。我本以为会是这样的:vartransactions=fromtindb.Transactionswheret.SellingPrice!=0selectt.SellingPrice,t.CommissionPercent,t.Etc...或者...vartransaction

c# - 使用 LINQ 使用 2 个列表创建字典

我正在尝试从2个列表创建一个字典,其中一个列表包含键,一个列表包含值。我可以使用for循环来完成它,但我正在尝试查找是否有使用LINQ来完成它的方法。示例代码会很有帮助。谢谢!!!!!! 最佳答案 在.NET4中,您可以使用内置的Zip合并两个序列的方法,后跟ToDictionary调用:varkeys=newList{1,2,3};varvalues=newList{"one","two","three"};vardictionary=keys.Zip(values,(k,v)=>new{Key=k,Value=v}).ToDic

c# - 当数据源为 Linq 时访问 ItemDataBound 事件中的列

我使用以下代码设置数据源:protectedvoidPage_Load(objectsender,EventArgse){varvacancies=fromvindb.Vacanciesjoincindb.Customersonv.CustomerIDequalsc.CustomerIDjoincpindb.CustomerPortalsonc.CustomerIDequalscp.CustomerIDwherecp.PortalID==Master.Portal.IDselectnew{Title=v.Title,Internship=(v.ContractID==6),Hours=