草庐IT

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# - 如何使用 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# - 使用 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=

c# - 使用 LINQ 获取配对

当我有一个列表时IListlist=newList();list.Add(100);list.Add(200);list.Add(300);list.Add(400);list.Add(500);提取pair的方法是什么Example:Listelements{100,200,300,400,500}ExpectedPair:{{100,200},{200,300},{300,400},{400,500}} 最佳答案 LINQ最优雅的方式:list.Zip(list.Skip(1),Tuple.Create)一个现实生活中的例子:这

c# - LINQ 到 SQL : Delete entity (by ID) with one query

我使用LINQToSQL已经有一段时间了,当谈到从数据库中删除实体时,我总是调用表的.DeleteOnSubmit并传入实体。有时我发现自己在写类似这样的东西:db.Users.DeleteOnSubmit(db.Users.Where(c=>c.ID==xyz).Select(c=>c).Single());这当然会导致两个查询。一个获取符合条件的实体,然后另一个删除它。通常我有需要删除的记录的ID,我想知道是否有更直接的方法仅通过ID从表中删除行? 最佳答案 通过附加部分对象并将其删除,无需手动工具SQL即可执行此操作:varm

c# - 内部 System.Linq.Set<T> 与公共(public) System.Collections.Generic.HashSet<T>

检查Linq.Enumerable类中的这段代码:staticIEnumerableDistinctIterator(IEnumerablesource,IEqualityComparercomparer){Setset=newSet(comparer);foreach(TSourceelementinsource)if(set.Add(element))yieldreturnelement;}为什么Microsoft的人决定使用Set的这个内部实现而不是常规的HashSet?如果它在任何方面都更好,为什么不向公众公开呢? 最佳答案