首页 新闻 赞助 找找看

C# 如何获取数组中某一类型的所有值?谢谢啦╮(╯_╰)╭

0
悬赏园豆:20 [已解决问题] 解决于 2016-07-05 20:39

C#中 一个数组中存有 DateTime 和 Int 两种类型的值,我现在想把其中所有DateTime的值全部取出来,然后组成一个List<DateTime> 应该如何做?

问题补充:

C#中 一个数组中存有 DateTime 和 Int 两种类型的值,我现在想把其中所有DateTime的值全部取出来,然后组成一个List<DateTime> 应该如何做?

AnQi_安琪_小屋的主页 AnQi_安琪_小屋 | 初学一级 | 园豆:103
提问于:2016-07-04 21:16
< >
分享
最佳答案
0

 找特征值。比如-之类的,如果有这种,那么就认为是字符串格式..

幻天芒 | 高人七级 |园豆:37175 | 2016-07-05 09:02

谢谢你提供思路咯

AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-05 16:52
其他回答(9)
0

一个数组怎么既有DateTime和Int的元素呢

收获园豆:1
jello chen | 园豆:7306 (大侠五级) | 2016-07-04 22:03

哦哦  就是DateTime那个的我ToString啦 其实都是string啦 

 m_LabelList[i] = curDate.ToString("yyyy-MM-dd");//DateTime  toSting

m_LabelList[i] = curTime.ToString();  // Int  toString

就是以上两种  当时我想把日期这种格式的 单独拿出来 作为一个List  不知道怎么弄啦?  Contain嘛?

支持(0) 反对(0) AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-04 22:46
1
List<DateTime> _list = new List<DateTime>(); //放在循环之外
if (m_LabelList[i].GetType() == DateTime.Now.GetType())
{
_list .add(m_LabelList[i]);
}

 

收获园豆:2
大楚打码人 | 园豆:4313 (老鸟四级) | 2016-07-05 09:49

恩恩 我的都是string类型哒最后  解决啦

支持(0) 反对(0) AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-05 16:53
0

你为什么不一开始就分开放呢?

liuxb1991 | 园豆:661 (小虾三级) | 2016-07-05 09:54
1
List<string> list = new List<string>() {"1960-01-01","111","2010-10-23","222" };
var datetimes = list.Where(b => b.Contains("-")).Select(b=>Convert.ToDateTime(b)).ToList();

找出特征,注意转换是否有异常。

收获园豆:2
皓月空 | 园豆:723 (小虾三级) | 2016-07-05 10:15

谢谢沐子风   我用的Contains 一直不太会用Lambda式  用你的代码我也测试成功啦 thx!

支持(0) 反对(0) AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-05 17:16
1

收获园豆:5
Firen | 园豆:5385 (大侠五级) | 2016-07-05 10:16

谢谢咯 三种方法我都试啦  么么

支持(0) 反对(0) AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-05 17:18
2

都是乱讲..严谨的做法是用DateTime.TryParse 判断是否是日期.再用int.TryParse判断是否是整数.然后放到各自的数组里

吴瑞祥 | 园豆:29449 (高人七级) | 2016-07-05 10:37

thx

支持(0) 反对(0) AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-05 17:18
1
        public void ShowData()
        {
            List<DateTime> _tempDateList = new List<DateTime>();//存放DateTime类型的数据
            List<int> _tempIntList = new List<int>();//存放int类型的数据
            string[] _temp = new string[5] { "2016-07-01", "123", "2016-07-02", "2016-07-03", "456" };
            foreach (var item in _temp)
            {
                if (item.Contains("-"))//验证数据中是否包含(‘-’)
                {
                    _tempDateList.Add(Convert.ToDateTime(item));
                }
                if (!item.Contains("-"))//不包含(‘—’)
                {
                    _tempIntList.Add(Convert.ToInt32(item));
                }
            }
        }

 

收获园豆:5
Carter5454 | 园豆:207 (菜鸟二级) | 2016-07-05 11:09

非常感谢 我最后 就有这种方法实现啦

支持(0) 反对(0) AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-05 20:32
2

举个例子楼主看可行不?

object[] arr = new object[5];

arr[0]= 1;

arr[1]=DateTime.Now;

arr[2]=DateTime.Now;

arr[3]=DateTime.Now;

arr[4]=DateTime.Now;

var ints=arr.TypeOf<int>().ToList();

var dateTimes = arr.TypeOf<DateTime>().ToList();

用到    System.Linq 命名空间。

收获园豆:3
Hoze | 园豆:196 (初学一级) | 2016-07-05 13:52

谢谢咯

支持(0) 反对(0) AnQi_安琪_小屋 | 园豆:103 (初学一级) | 2016-07-05 20:35
1

if else 判断数组中每一个元素是否可以转换为时间类型DateTime.TryParse(),或者转换为整数int.TryParse(),然后再放入相对应的数组中

收获园豆:2
子明 | 园豆:109 (初学一级) | 2016-07-05 15:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册