C# 如何在Linq中选择新的列表对象之前转换为特定对象

C# 如何在Linq中选择新的列表对象之前转换为特定对象,c#,linq,C#,Linq,我有一个列表,对象“a”,其类型是1,2,3,我想测试对象 a.type==1或a.type==2或a.type==3 然后我将转换为我的数据类型,例如a.type==1转换为classtype1,或者a.type==2然后转换为classtype==2。。接下来,我将选择一个新列表来保存此对象的所有三种类型。您可以使用is关键字检查类型,如下所示 List<object> a = new List<object>(); List<string> aStrin

我有一个列表,对象“a”,其类型是1,2,3,我想测试对象

a.type==1
a.type==2
a.type==3


然后我将转换为我的数据类型,例如
a.type==1
转换为
classtype1
,或者
a.type==2
然后转换为
classtype==2
。。接下来,我将选择一个新列表来保存此对象的所有三种类型。

您可以使用is关键字检查类型,如下所示

List<object> a = new List<object>();
List<string> aStrings = new List<string>();
List<int> aInts = new List<int>();

//insert objects in a

foreach(object o in a)
{
    if(o is string)
    {
       aStrings.Add(o as string);
    }
    else if(a is int)
    {
       aInts.Add(o as int);
    }
}
List a=新列表();
List aStrings=新列表();
列表aInts=新列表();
//在图形中插入对象
foreach(a中的对象o)
{
if(o是字符串)
{
添加(o作为字符串);
}
else if(a为int)
{
添加(o作为int);
}
}

这似乎可以满足您的要求

List<object> myObjects = new List<object>();

        myObjects.Add(1);
        myObjects.Add("Ravi");
        myObjects.Add(new DateTime());

        for (var i = 0; i < myObjects.Count; i++)
        {
            var myObject = myObjects[i];

            if (myObject is int) // or can use if(myObject.GetType() == typeof(int))
            {

            }
            else if (myObject is string)
            {

            }
            else if (myObject is DateTime)
            {

            }
        }
List myObjects=new List();
新增(1)项;
myObjects.添加(“Ravi”);
添加(new DateTime());
对于(var i=0;i
我想浏览列表中的所有元素,选择三种样式,然后将它们包含在列表中。我已经编辑了我的答案。我不知道你是不是这个意思。如果没有,请提供您想要做的更多信息谢谢,我找到了答案。非常抱歉,问题不清楚,我只是使用了堆栈溢出,我不明白为什么我是向下投票???抱歉的坏经验。但是由于你的问题的质量,你得到了反对票。您应该尝试更详细地解释您的问题,并提供一个您allready尝试过的示例。Hi Tran Audi检查我的答案是否满足您的要求有一件事我不明白的是您是否有int类型的字段?是否指示该类型,您是否想要创建新对象,或者您想要的类型中是否已经存在?谢谢,我对Linq太粗暴了:)@tranadi你可以用Linq做任何你可以用循环做的事情。你的问题还不清楚。试着编辑这个问题,让它更清楚。从我所看到的,你想要的是一个简单的群组,但我不确定。