C# 列表(T).ForEach不是使用Xamarin定义的
我从我的一个朋友那里得到了一些代码,它在windows环境下工作得非常好。申请表格。 当我尝试在Xamarin.Forms项目中使用相同的代码时,它会说: System.Collections.Generic.List>'没有“ForEach”的定义。[…](可能缺少一个“using”(从德语翻译) 我有:C# 列表(T).ForEach不是使用Xamarin定义的,c#,generics,foreach,xamarin,xamarin.forms,C#,Generics,Foreach,Xamarin,Xamarin.forms,我从我的一个朋友那里得到了一些代码,它在windows环境下工作得非常好。申请表格。 当我尝试在Xamarin.Forms项目中使用相同的代码时,它会说: System.Collections.Generic.List>'没有“ForEach”的定义。[…](可能缺少一个“using”(从德语翻译) 我有: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Xamarin.Forms;
using System.Reflection;
以下是给出错误的代码:
public Company GetCompanyById(int companyId) {
Company company = new Company();
allContinents
.MyContinents
.Select(x => x.Countries)
.ToList()
.ForEach(countryList => {
countryList.ForEach(country => {
country.Cities.ForEach(city => {
city.Companies.ForEach(com => {
if (com.Id.Equals(companyId))
company = com;
});
});
});
});
return company;
}
为什么它不能像在windows.forms应用程序中那样工作?
附:这是第一个用蓝色下划线的字体
谢谢您正在使用.NET的可移植类库子集;这不包括
List.ForEach
就我个人而言,我并不热衷于这种方法——在我看来,使用LINQ来选择合适的公司会更具可读性。毕竟,您正在执行一个查询
如果没有它不行,可以定义自己的ForEach扩展方法
public static class IEnumerableExtensions
{
public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
foreach(T item in enumeration)
{
action(item);
}
}
}
公共静态类IEnumerableExtensions
{
公共静态void ForEach(此IEnumerable枚举,操作)
{
foreach(枚举中的T项)
{
行动(项目);
}
}
}
一切都是最新的-.NET 4.5-Visual Studio 2013 Ultimate和Xamarin.iOs、Xamarin.Android以及Xamarin.Forms NuGet都是更新的Hanks。而且总是会有匹配项,因为用户只能从listview中选择一些数据,这些值将作为CompanyId@Hendrik:Right-在这种情况下,我将更改示例代码,以便在违反该假设时引发异常。
public static class IEnumerableExtensions
{
public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
foreach(T item in enumeration)
{
action(item);
}
}
}