OfType
accepts a nongeneric IEnumerable
collection and emit a generic
IEnumerable<T> sequence that you can subsequently query:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
ArrayList classicList = new ArrayList(); // in System.Collections
classicList.AddRange(new int[] { 3, 4, 5 });
IEnumerable<int> sequence1 = classicList.OfType<int>();
foreach (int i in sequence1)
{
Console.WriteLine(i);
}
}
}
The output:
3
4
5
When encountering an incompatible type OfType
ignores the incompatible element.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
ArrayList classicList = new ArrayList(); // in System.Collections
classicList.AddRange(new int[] { 3, 4, 5 });
IEnumerable<int> sequence1 = classicList.Cast<int>();
foreach (int i in sequence1)
{
Console.WriteLine(i);
}
DateTime offender = DateTime.Now;
classicList.Add(offender);
sequence1 = classicList.OfType<int>(); // OK - ignores offending DateTime
foreach (int i in sequence1)
{
Console.WriteLine(i);
}
}
}
The output:
3
4
5
3
4
5
java2s.com | Contact Us | Privacy Policy |
Copyright 2009 - 12 Demo Source and Support. All rights reserved. |
All other trademarks are property of their respective owners. |