如何在MessageBox中显示LinkedList [英] How to display LinkedList in MessageBox

查看:64
本文介绍了如何在MessageBox中显示LinkedList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试使用MessageBox打印LinkedList。通常我使用这种方法来显示数组。



Trying to print LinkedList with MessageBox. Typically I use this method to display arrays.

private void DisplayList<T>(LinkedList<T> list)
        {
            string strDisplay = string.Join(Environment.NewLine, list);
            MessageBox.Show(strDisplay);
        }







但是在这个例子中我想在显示之前反转LinkedList的顺序。以下不编译。错误是最后一次strDisplay未分配。有什么建议吗?






However in this instance I want to reverse the order of LinkedList before displaying. The below doesn't compile. Error is that last strDisplay is unassigned. Any suggestions how best to do this?

private void displayListReversed<T>(LinkedList<T> list)
        {
            LinkedListNode<T> currentNode = list.Last;
            string strDisplay;
            while (currentNode != null)
            {
                strDisplay = strDisplay + Environment.NewLine + currentNode.Value;
                currentNode = currentNode.Previous; // go backwards through nodes
            }

            MessageBox.Show(strDisplay); // doesn't work
        }

推荐答案





我想建议一个更优雅的实现。



Hi,

I would like to suggest a more elegant implementation.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;

namespace LinkedListTest
{
    public partial class MainWindow : Window
    {
        LinkedList<int> linkedList;

        public MainWindow()
        {
            this.Loaded += MainWindow_Loaded;

            InitializeComponent();
        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            linkedList = new LinkedList<int>();

            for(int i=0; i<10; i++)
            {
                linkedList.AddLast(i);
            }

            DisplayList(linkedList);
            DisplayListReversed(linkedList);
        }

        private void DisplayList<T>(LinkedList<T> list)
        {
            string strDisplay = string.Join(Environment.NewLine, list);
            MessageBox.Show(strDisplay);
        }

        private void DisplayListReversed(LinkedList<int> linkedList)
        {
            linkedList = new LinkedList<int>(linkedList.Reverse());
            DisplayList(linkedList);
        }
    }
}





快乐编码,



Stephan



Happy coding,

Stephan


这篇关于如何在MessageBox中显示LinkedList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆