Tag: foreach

为什么赋值运算符(=)在foreach循环中无效?

为什么赋值运算符(=)在foreach循环中无效? 我正在使用C#,但我认为该参数对于支持foreach其他语言(例如PHP)是相同的。 例如,如果我这样做: string[] sArray = new string[5]; foreach (string item in sArray) { item = “Some assignment.\r\n”; } 我收到一个错误,“无法分配给’item’,因为它是’foreach迭代变量’。”

如何在MVC中创建foreach循环以为项设置新值。

我试图在clas中循环抛出对象并检查其数据tybe并进行控制,如果数据类型是字符串所以我希望此项值为空。 如果数据类型为int,则此项的值为0,依此类推。 这里是我的伪代码 ProductionOrderItem i = new ProductionOrderItem(); foreach( ProductionOrderItem item in i) { if(item.data type is string) { item.value = “” ; } if ((item.data type is int) { item.value = 0 ; } if (item.data type is stringDateTime)) { item.value = 2011-01-01 00:00:00; } else // do any thing. } 或者是否可以将项目放入arrays并通过arrays制作lopp?

c#阿尔法电话号码翻译

我有一个家庭作业,程序将接受任何类似于555-GET-FOOD格式的电话号码。 任务是将字母字母映射到数字并将数字转换为数字等效字母。 例如:A,B,C = 2; D,E,F = 3; 等等… 我们此时尚未涉及类或创建地图,因此这些不是可行的解决方案。 本章确实涵盖了枚举,所以我正在努力使用枚举类型来解决。 我有一个方法设置来validation数据(确保正确的#字符和连字符在正确的位置),这确实工作正常。 我有另一个方法设置来删除连字符,并使用ToUpper()方法,这也正常工作,所以foreach循环我已经使用这两个方法已经完成后的数字设置我们。 我还设置了一个方法,在转换发生后运行,以添加连字符,这也有效。 我已经尝试了几种方法来工作并让他们注意到他们可能成为我需要使用的机会,因为我尝试使用switch语句我现在只设置字母A,并计划如果我能够使其工作,请完成剩余的字母。 我认为我的问题是foreach循环使用char类型,并且交换机使用int。 在foreach循环中尝试代码时似乎是同样的问题,但我不知道如何修复所以任何建议都值得赞赏。 public enum AlphaNumber { A=2, B=2, C=2, D=3, E=3, F=3, G=4, H=4, I=4, J=5, K=5, L=5, M=6, N=6, O=6, P=7, Q=7, R=7, S=8, T=8, U=8, V=9, W=9, X=9, Y=9, Z=9 } private void UpdatePhone(AlphaNumber phone) { switch (phone) […]

为什么这个函数什么都没有返回,虽然有匹配?

我称之为(Compact Framework – 此代码在Windows CE手持设备上运行)方法: public static List GetXMLFiles(string fileType, string startingDir) { const string EXTENSION = “.XML”; string dirName = startingDir; var fileNames = new List(); try { foreach (string f in Directory.GetFiles(dirName)) { string ext = Path.GetExtension(f).ToUpper(); string fileNameOnly = Path.GetFileNameWithoutExtension(f); if ((ext.Equals(EXTENSION, StringComparison.OrdinalIgnoreCase)) && (fileNameOnly.Contains(fileType))) { fileNames.Add(f); } } foreach (string d […]

如何使用LINQ ForEach更改List

我有一个List myInts ,想要将所有数字乘以10.我想使用linq(不是foreach循环)。我试过这个,但没有发生任何事情: List myInts = new List() { 1, 2, 3 }; myInts .ForEach(act => act=act*10); 在.ForEach(…)部分我需要注意什么? 是的,如果有可能,我想使用ForEach。 可能它很简单,但我无法看到它,我很抱歉。 谢谢你们!

ASP.NET MVC3 Razor在模型中查询(foreach中的foreach)

我在View中遇到了一个问题,从不同的实体中提取数据。 基本上我有一个桥接实体CategoryProduct,它将Category和Product数据汇集在一起​​。 我想最终展示的是产品清单以及每种产品 – 它们的类别。 然而,我完全停留在如何使最后一部分 – 显示类别 – 发生。 这是我模型的代码 – public class Product { public int ProductId { get; set; } public string Title { get; set; } public virtual ICollection CategoryProducts { get; set; } } public class CategoryProduct { public int CategoryProductID { get; set; } public int CategoryId { get; […]

计算时间长

这是我前一个问题的链接,这引导我进入这个问题。 C#嵌套的foreach循环优化 计算时间仍然很长,我不确定原因是什么。 object foo; List StringList = new List(); // Populated by previous code Dictionary assemblyTypes = RandomAssembly.GetTypes().ToDictionary(t => t.Name, t => t); foreach (String name in StringList) { if (assemblyTypes.ContainsKey(name)) { // Create an instance of the matching class and add it // to the appropriate lists. Type at = assemblyTypes[name]; foo = […]

无法获取PropertyInfo.SetValue()来设置我的对象上的值

我已将下面的代码简化为一个基本示例,但我仍然无法获取要设置的值。 执行propertyInfo.SetValue()时,它将在我的Contact对象的setter上命中断点,并在’setter’中正确设置该值。 但是,在执行SetValue()之后,projectContact.Contact对象上的字符串属性尚未更改为“a”。 知道我在这里做错了什么吗? IEnumerable contacts = GetContactsByProject(projectId); foreach (ProjectContact projectContact in contacts) { foreach (PropertyInfo propertyInfo in projectContact.Contact.GetType().GetProperties()) { if (propertyInfo.PropertyType == typeof(string)) { propertyInfo.SetValue(projectContact.Contact, “a”, null); } } }

如何减少多个嵌套的foreach块

我有以下情况: var Ids = object1.GetIds(); // returns IEnumerable foreach (var id in Ids) { foreach (var relatedObject in object1.GetRelatedObjects(id)) { // Do Something with related object } } 在这种情况下,我想摆脱第一个foreach并将这个逻辑减少为单个foreach。 我怎么能做到这一点? LINQ表达式是否可以使用类似的方法?

foreach如何在没有显式/隐式覆盖的情况下进行投射?

所以我只是在学习C#,并遇到了一些我觉得奇怪的事情……我正在与代表一起玩,并创建了一个委托DelegateReturnsInt 。 现在,当我使用foreach循环时,本书显示使用它如下: foreach(DelegateReturnsInt del in theDelegate.getInvocationList()) 现在我知道getInvocationList()返回一个Delegate []数组,但它如何将它们转换为DelegateReturnsInt ? 我问,因为我想只是玩游戏并将其从foreach更改为for循环,所以我创建了这个 Delegate[] del = theDelegate.GetInvocationList(); for(int i = 0; i < del.Length; i++){ int result = del[i](); 但是这并不认为del [i]是一种方法。 我已经尝试过强制转换为DelegateReturnsInt等,但它给了我关于没有定义的类型错误。 我最大的问题是什么使foreach()如此特别?