小编Chr*_*ris的帖子

用Linq查询替换for-switch循环

我有一个Message对象,它包含了我无法控制的消息格式.格式是键/值对的简单列表.我想从给定的消息中提取用户列表.例如,给出以下消息......

1. 200->....
2. 300->....
3. ....
4. 405->.... 
5. 001->first_user_name
6. 002->first_user_phone
7. 003->first_user_fax
8. 001->second_user_name
9. 001->third_user_name
10. 002->third_user_phone
11. 003->third_user_fax
12. 004->third_user_address
13. .....
14. 001->last_user_name
15. 003->last_user_fax  
Run Code Online (Sandbox Code Playgroud)

我想用提供的属性集提取四个用户.初始键200/300 .... 405表示我不需要的字段,可以跳过以获取用户数据.

每个用户数据都在连续的字段中,但字段的数量取决于有关用户的信息量.以下方法可以满足我的需求.它使用可能的键类型的枚举和方法来查找具有用户数据的第一个字段的索引.

private List<User> ParseUsers( Message message )
{
    List<User> users = new List<User>( );
    User user = null; String val = String.Empty;

    for( Int32 i = message.IndexOfFirst( Keys.Name ); i < message.Count; i++ ) 
    {
        val = message[ i ].Val;

        switch( message[ i ].Key )
        { …
Run Code Online (Sandbox Code Playgroud)

c# linq

5
推荐指数
1
解决办法
1010
查看次数

标签 统计

c# ×1

linq ×1