日期:2014-05-18  浏览次数:20778 次

求C#高手实现这段C++代码
就是一个数组 从中找到我需要的一部分 并且我改变这部分的值就是改变原数组


#include <vector>
#include <iostream>
using namespace std;
class A
{
public:
A()
{
for(int i=0;i!=51;++i)
{
vec.push_back(i);
}
}
void GetVec(vector <vector<int>::iterator>& buf)
{
for(vector<int>::iterator iter=vec.begin();iter!=vec.end();++iter )
{
if((*iter%10)==0)
{
buf.push_back(iter);
}
}
}
public:
vector<int> vec;
};
int main()
{
A a;
vector<vector<int>::iterator> buf;
a.GetVec(buf);
for (vector<vector<int>::iterator>::iterator iter=buf.begin();iter!=buf.end();++iter)
{
cout<<*(*iter)<<" ";
}
cout<<endl;
for (vector<int>::iterator iter=a.vec.begin();iter!=a.vec.end();++iter)
{
cout<<*iter<<" ";
}
cout<<endl;

*(buf[2])=0;
  *(buf[1])=0;
*(buf[3])=0;

for (vector<vector<int>::iterator>::iterator iter=buf.begin();iter!=buf.end();++iter)
{
cout<<*(*iter)<<" ";
}
cout<<endl;
return 0;
}

------解决方案--------------------
net中的数组直接有这种功能:Array.Find ,看看MSDN,上面有例子。。。
------解决方案--------------------
C# code

public a
{
    list<int> vec=new list<int>();
    public a()
    {
        for(int i=0;i!=51;++i)
        {
             vec.add(i);
        }
    }
    void GetVec(list<int> buf)// 这里其实应该为指针。list<int *>
    {
        foreach(int i in vec)
        {
            if((i%10)==0)
            {
                buf.add(iter);
            }
        }
    }
}

int main()
{
    A a;
    list<int> buf;
    a.GetVec(buf);
    foreach    (int i in buf)
    {
        cout<<i<<" ";
    }
    cout<<endl;
    for (int i in a.vec)
    {
    cout<<i<<" ";
    }
    cout<<endl;

     buf[2] =0;
     buf[1] =0;
     buf[3] =0;

    foreach(int i in buf)
    {
        cout<<i<<" ";
    }
    
    cout<<endl;
    return 0;//count ==console.write //endl =\n
}