el *_*nho 8 .net c# foreach loops
我有这个代码从excel文件填充数据表:
for (int rowIndex = cells.FirstRowIndex; rowIndex <= cells.LastRowIndex; rowIndex++)
{
var values = new List<string>();
foreach (var cell in cells.GetRow(rowIndex))
{
values.Add(cell.Value.StringValue);
}
dataTable.LoadDataRow(values.ToArray(), true);
}
Run Code Online (Sandbox Code Playgroud)
当cell与我在表中设置的数据类型不同时,我有问题.
如何跳过错误数据类型的单元格?
我也知道这一点,但我不能在我的情况下使它工作:
foreach //...
{
if //if datatype is not right
{
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用LINQ OfType<IMyType>()方法过滤掉错误的项目:
// do not forget adding using System.Linq;
var filteredItems = items.OfType<IMyType>();
var values = new List<IMyType>(filteredItems);
Run Code Online (Sandbox Code Playgroud)
MSDN:
根据指定的类型过滤IEnumerable的元素.OfType(IEnumerable)方法仅返回源中可以强制转换为TResult类型的元素
C#有一个is运算符.
例如:
foreach(var item in collection)
{
if(item is string)
{
//Do something with the string.
}
}
Run Code Online (Sandbox Code Playgroud)