-6

だれか使い方教えてくれませんかstack.ofType<>? 私は何度も試しましたが、これはできません。

private void button2_Click(object sender, EventArgs e)
{
    Stack st = new Stack();
    st.Push("joginder");
    st.Push("singh");
    st.Push("banger");
    st.Push("Kaithal");
    st.OfType<>  //how to work this option
}
4

4 に答える 4

4

Stack<T>の代わりにジェネリック型を使用するStackと、特定の型のスタックが取得され、そこから読み取った値をキャストする必要がなくなります。

Stack<string> st = new Stack<string>();
st.Push("joginder");
st.Push("singh");
st.Push("banger");
st.Push("Kaithal");

スタックから何かをポップしたり、アイテムをループしたりすると、それはすでに文字列になっているので、キャストする必要はありません。

于 2013-02-13T15:59:55.307 に答える
1

あなたはそのようなタイプを提供します

st.OfType<string>()

これにより、スタックからアイテムをポップせずに反復できるIEnumerableが返されます。

このコードを考えると:

        Stack st = new Stack();
        st.Push("joginder");
        st.Push("singh");
        st.Push("banger");
        st.Push("Kaithal");
        st.Push(1);
        st.Push(1.0);

        foreach (var name in st.OfType<string>())
        {
            Console.WriteLine(name);
        }

次の出力が得られます。

 joginder
 singh
 banger
 Kaithal
于 2013-02-13T16:04:54.470 に答える
0

ここに良い例があります: http://msdn.microsoft.com/en-us/library/bb360913.aspxですが、基本的に OfType を使用して、その特定のタイプのアイテムの IEnumerable を作成できます。たとえば、あなたのコードが読んだ場合:

        Stack st = new Stack();
        st.Push("joginder");
        st.Push(1.4);
        st.Push("singh");
        st.Push("banger");
        st.Push(2.8); 
        st.Push("Kaithal");

        IEnumerable<String> strings = st.OfType<String>();  //how to work this option
        IEnumerable<double> doubles = st.OfType<double>();   

スタック内のすべての文字列を含むリストと、すべての double を含むリストを作成します。

于 2013-02-13T16:05:59.243 に答える
0

とを使用genericsStack<T>ます。

private void button2_Click(object sender, EventArgs e)
    {
        Stack<string> st = new Stack<string>();
        st.Push("joginder");
        st.Push("singh");
        st.Push("banger");
        st.Push("Kaithal");
 }

次のこともできます。

public class Client {
    public string Name { get; set; }
}

private void button2_Click(object sender, EventArgs e)
{
        Stack<Client> st = new Stack<Client>();
        st.Push(new Client { "joginder" });
        st.Push(new Client { "singh" });
        st.Push(new Client { "banger" });

}

クラス Client は、T割り当てた型をどのように置き換えるかを示すためのものであることに注意してください。

于 2013-02-13T16:06:24.983 に答える