【c# – 将foreach循环中发生的条件作为参数传递】教程文章相关的互联网学习教程文章

c# – 不同属性的通用foreach循环【代码】

我试图使用foreach循环的泛型方法,它将传递不同的参数作为参数. 在下面的这个例子中,我想传递不同的参数(EmployeeDisplayOrder或EmployeeEnrollOrder)public void SaveEmployeeDisplayOrder(ICollection<Employee> employees) {//some codeforeach( var emp in employees){UpdateSpecificEmployeeOrder(employee.id, e => e.EmployeeDisplayOrder);} }public void SaveEmployeeEnrollOrder(ICollection<Employee> employees) {//so...

c# – 将foreach循环中发生的条件作为参数传递【代码】

我有一种方法可以将列表中某些学生对象的数据添加到数据表中.该方法检查studentList中满足特定条件的学生,然后将它们添加到数据表中. 我想在参数中指定条件,但是当我尝试将s.status作为我的第二个字符串参数传递时,我(可以理解)得到一个错误,因为在foreach循环开始之前s不会发挥作用.有没有办法让这项工作?public void AddDataTableRows(DataTable datatable, string field, string condition){foreach (student s in studentList...

使用C#7的foreach声明中的空合并运算符【代码】

我在C#7.0中查看this code示例,我不确定引擎盖下发生了什么以及此循环的性能.foreach (var c in text ?? throw new ArgumentNullException(nameof(text))) {... }我的问题: >条件语句是一次还是多次打击(打开每次迭代)?>新语法看起来不同,这样做有什么好处?解决方法:您应该了解foreach内部代码以了解此C#功能. foreach语句中表达式的右侧部分必须实现IEnumerable(< T>)接口,而整个循环在内部是一个简单的while,类似这样:// her...

c# – 从集合中收集数据时,我应该使用简单的foreach或Linq吗?【代码】

对于一个简单的例子,其中类foo有一个成员i,并且我有一组foos,比如IEnumerable< Foo> foos,我想最终得到foo的成员i的集合,比如List< TypeOfi>结果. 问题:是否最好使用foreach(下面的选项1)或某种形式的Linq(下面的选项2)或其他方法.或者,或许,它甚至不值得我自己(仅选择我个人的偏好). 选项1:foreach (Foo foo in foos)result.Add(foo.i);选项2:result.AddRange(foos.Select(foo => foo.i));对我来说,选项2看起来更干净,但我想知...

c# – 来自IEnumerable的项目在foreach中更改,但更改未保存到集合中【代码】

我今天遇到了一个有趣的问题,这是一个复制:class TestListAndEnumerable {public static void Test(){bool b1 = GetBool1(); // returns falsebool b2 = GetBool2(); // returns true}private static bool GetBool1(){IEnumerable<BoolContainer> list = new List<bool> { false }.Select(x => new BoolContainer { Value = x });foreach (BoolContainer item in list){item.Value = true;}return list.Select(x => x.Value).Firs...

c# – LINQ在HashSet上的ForEach?【代码】

我很好奇是什么限制必须让设计决定不让HashSet能够使用LINQ的ForEach查询. 这两种实现的幕后实际情况有何不同:var myHashSet = new HashSet<T>; foreach( var item in myHashSet ) { do.Stuff(); }VSvar myHashSet = new HashSet<T>; myHashSet.ForEach( item => do.Stuff(); }我(非常)确定这只是因为HashSet没有实现IEnumerable – 但是正常的ForEach循环做什么不同会使HashSet更多地支持它? 谢谢解决方法:LINQ没有ForEach.仅列...

c# – 如何提高Parallel.ForEach的吞吐量【代码】

我尝试使用并行执行优化代码,但有时只有一个线程获得所有重负载.以下示例显示了如何在最多4个线程中执行40个任务,并且前10个任务比其他线程更耗时. Parallel.ForEach似乎将数组拆分为4个部分,并让一个线程处理每个部分.所以整个执行大约需要10秒钟.它应该能够在最多3.3秒内完成! 有没有办法一直使用所有线程,因为它在我真正的问题中不知道哪些任务是耗时的?var array = System.Linq.Enumerable.Range(0, 40).ToArray();System.Th...

c# – 更新没有Foreach循环的单列列表【代码】

我有一个清单List<Myclass> li = new List<Myclass> ();Myclass的地方public class Myclass {public string ExamName { get; set; }public Nullable<decimal> Marks { get; set; }public Nullable<decimal> OutOfMarks { get; set; }public string GradeMarks { get; set; }public Nullable<decimal> markEaxmTotalOverAll { get; set; }public Nullable<decimal> MarksExamTotalMarksTypeWise { get; set; }public Nullable<decim...

c# – 关于MVC 4视图中ViewData的Foreach【代码】

我遇到的问题是我从我的数据库返回一张照片记录,这在我的详细信息视图中工作正常.但是在控制器下的细节我也正在编译一个列表对象,我想在我的详细信息视图中显示它,因为它包含相关的其他照片.因此,在视图的底部,它应列出每个引用的照片名称.我正在使用Galleria.Io照片查看器,我想将其插入其中. 当我尝试遍历列表中的每个项目时,我得到:{"Object reference not set to an instance of an object."}码 PhotosControllerpublic Action...

c# – 将简单的ForEach转换为Linq语句【代码】

我是一个SQL开发人员,所以Linq(和C#一般)对我来说有点陌生,但是我有一个简单的foreach循环,我认为Linq查询可能会更好.即使手头的问题不是特别困难,如果没有别的东西,这将是一个有用的东西.这是我的代码:bool fireAgain = true; foreach (var connMan in Dts.Connections) {Dts.Events.FireInformation( 0, "", String.Format("Connection Manager {0} has connection string {1}", connMan.Name, connMan.ConnectionString), "", ...

c# – 在foreach循环中的Resharper,linq【代码】

在底部示例中,Resharper建议使用顶部示例.但是我的印象是首先会创建一个新的项目列表,因此所有_executeFuncs都将在调用runstoredprocedure之前运行. 这通常不是问题,但是容易发生异常,如果我的假设是正确的,那么尽管已经运行了函数,我的数据库也不会更新?foreach (var result in rows.Select(row => _executeFunc(row))){ RunStoredProcedure(result)}要么foreach(var row in rows){var result = _executeFunc(...

C#Foreach继续将相同的项目添加到列表中【代码】

我的简单foreach存在问题.我试图从数据库中获取数据到我的列表.IList<DeliveredTaskModel> deliveredTaskModel = new List<DeliveredTaskModel>(); // lines of code if (materialUsed.Count > 0) {foreach (var material in materialUsed){var deliveryModel = new DeliveredTaskModel();deliveryModel.Info = materialUsed[0].SubPartCode;deliveryModel.Description = materialUsed[0].Description;deliveryModel.Qty = materia...

c# – 使用foreach(…)语法,同时在循环内增加索引变量【代码】

在查看C#代码时,我经常会看到这样的模式:DataType[] items = GetSomeItems(); OtherDataType[] itemProps = new OtherDataType[items.Length];int i = 0; foreach (DataType item in items) {// Do some stuff with item, then finallyitemProps[i] = item.Prop;i++; }for循环遍历项目中的对象,但也保持计数器(i)以迭代itemProps.我个人不喜欢这种额外的闲逛,而是可能做的事情如下:DataType[] items = GetSomeItems(); OtherData...

c# – LINQ而不是foreach和list.addrange【代码】

有谁知道以下代码的LINQ代码是什么?:foreach (Bed bed in field.GetBeds()) {asparaguses.AddRange(bed.GetAsparaguses()); }解决方法:使用SelectMany展平嵌套列表asparaguses.AddRange(field.GetBeds().SelectMany(bed => bed.GetAsparaguses()));

使用foreach循环为c#中的两个列表创建列表值【代码】

List<String> listA = new List<string> { "A1", "A2" }; List<String> listB = new List<string> { "B1", "B2" };for(int i = 0; i < listA.Count; i++) {text += listA[i] + " and " + listB[i]; }如何使用foreach循环执行此操作?解决方法:您可以使用Linq和Zip方法:List<String> listA = new List<string> { "A1", "A2" }; List<String> listB = new List<string> { "B1", "B2" };foreach (var pair in listA.Zip(listB, (a,b)...