DGKumar Ответов: 3

Не удалось получить все записи в итерации списка C#


Привет, у меня есть несколько записей списка "объект", но в результате я получаю только одну запись.

Не могли бы вы, пожалуйста, помочь мне, как получить все данные списка для приведенных ниже данных.

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ToCommaExample
{
    class Program
    {
        public void DisplayResult(object fromResult)
        {
            foreach (var result in fromResult as List<object>)
            {
                var Jsonresult = Newtonsoft.Json.JsonConvert.SerializeObject(result);
                Console.WriteLine(Jsonresult);
               

            }

        }
        public static void CreatEvents(object auditData)
        {
            if (auditData != null)
            {
                List<object> singleAuditEvent = new List<object>();
                foreach (var fromAuditData in auditData as List<object>)
                {

                    singleAuditEvent.Add(fromAuditData);

                }
                Program obj = new Program();
                obj.DisplayResult(singleAuditEvent);
            }
        }
        static void Main(string[] args)
        {
            List<object> listObject = new List<object>();

            List<SecurityAuditData> objSecurityAuditData = new List<SecurityAuditData>()
            {
            new SecurityAuditData() { EntityID="12341",TransactionName="ABC",UserIdentity="U1"} }; listObject.Add(objSecurityAuditData);


            List<SecurityAuditData> objSecurityAuditData1 = new List<SecurityAuditData>()
            {

            new SecurityAuditData() { EntityID="12344",TransactionName="ABC3",UserIdentity="U4"}}; listObject.Add(objSecurityAuditData1);

            List<SecurityAuditData> objSecurityAuditData2 = new List<SecurityAuditData>()
            {

            new SecurityAuditData() { EntityID="12343",TransactionName="ABC2",UserIdentity="U3"}
          }; listObject.Add(objSecurityAuditData2);

            List<SecurityAuditData> objSecurityAuditData3 = new List<SecurityAuditData>()
            {

            new SecurityAuditData() { EntityID="12342",TransactionName="ABC1",UserIdentity="U2"}
          }; listObject.Add(objSecurityAuditData3);



            Program.CreatEvents(listObject);
            Console.Read();
        }

    }


    public class SecurityAuditData
    {
        public string TransactionName { get; set; }
        public string EntityID { get; set; }
        public string UserIdentity { get; set; }

    }


}


Что я уже пробовал:

Я пробовал использовать приведенный ниже код, но не смог получить все записи.
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ToCommaExample
{
    class Program
    {
        public void DisplayResult(object fromResult)
        {
            foreach (var result in fromResult as List<object>)
            {
                var Jsonresult = Newtonsoft.Json.JsonConvert.SerializeObject(result);
                Console.WriteLine(Jsonresult);
                

            }

        }
        public static void CreatEvents(object auditData)
        {
            if (auditData != null)
            {
                List<object> singleAuditEvent = new List<object>();
                foreach (var  fromAuditData in auditData as List<object>)
                {

                    singleAuditEvent.Add(fromAuditData);

                }
                Program obj = new Program();
                obj.DisplayResult(singleAuditEvent);
            }
        }
        static void Main(string[] args)
        {
            List<object> listObject = new List<object>();

            List<SecurityAuditData> objSecurityAuditData = new List<SecurityAuditData>()
            {
            new SecurityAuditData() { EntityID="12341",TransactionName="ABC",UserIdentity="U1"} }; listObject.Add(objSecurityAuditData);


            List<SecurityAuditData> objSecurityAuditData1 = new List<SecurityAuditData>()
            {

            new SecurityAuditData() { EntityID="12344",TransactionName="ABC3",UserIdentity="U4"}}; listObject.Add(objSecurityAuditData1);

            List<SecurityAuditData> objSecurityAuditData2 = new List<SecurityAuditData>()
            {

            new SecurityAuditData() { EntityID="12343",TransactionName="ABC2",UserIdentity="U3"}
          }; listObject.Add(objSecurityAuditData2);

            List<SecurityAuditData> objSecurityAuditData3 = new List<SecurityAuditData>()
            {

            new SecurityAuditData() { EntityID="12342",TransactionName="ABC1",UserIdentity="U2"}
          }; listObject.Add(objSecurityAuditData3);



            Program.CreatEvents(listObject);
            Console.Read();
        }

    }


    public class SecurityAuditData
    {
        public string TransactionName { get; set; }
        public string EntityID { get; set; }
        public string UserIdentity { get; set; }

    }


}

Выход :
[{"TransactionName":"ABC","EntityID":"12341","UserIdentity":"U1"}]

Получаем только вышеприведенный результат но нужно получить все 4 записи

3 Ответов

Рейтинг:
4

ry4nolson

Вы уверены, что не получаете желаемого результата со второй программой?

Я запустил его как есть и получил:

[{"TransactionName":"ABC","EntityID":"12341","UserIdentity":"U1"}]
[{"TransactionName":"ABC3","EntityID":"12344","UserIdentity":"U4"}]
[{"TransactionName":"ABC2","EntityID":"12343","UserIdentity":"U3"}]
[{"TransactionName":"ABC1","EntityID":"12342","UserIdentity":"U2"}]


Рейтинг:
22

Alek Massey

Снимите консоль.Read(); после консоли.WriteLine(Jsonresult);

Они приостанавливают выполнение и заставляют программу ждать ввода пользователя (клавиатуры).

{Update] OP внес изменения, которые я рекомендовал, и теперь они работают.


Рейтинг:
16

summiya1

Код должен работать идеально, как только вы попытаетесь работать со мной.