感悟

<Window x:Class="DemoListPut.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBox x:Name="allNumber" HorizontalAlignment="Left" Height="23" Margin="31,24,0,0" TextWrapping="Wrap" Text="100" VerticalAlignment="Top" Width="120"/>
        <TextBox x:Name="beginNumber" HorizontalAlignment="Left" Height="23" Margin="31,78,0,0" TextWrapping="Wrap" Text="1" VerticalAlignment="Top" Width="120"/>
        <TextBox x:Name="stepNumber" HorizontalAlignment="Left" Height="23" Margin="31,123,0,0" TextWrapping="Wrap" Text="4" VerticalAlignment="Top" Width="120"/>
        <Button x:Name="beginBtn" Content="Button" HorizontalAlignment="Left" Margin="201,33,0,0" VerticalAlignment="Top" Width="75" Click="beginBtn_Click"/>
        <Button x:Name="startBtn" Content="Button" HorizontalAlignment="Left" Margin="201,109,0,0" VerticalAlignment="Top" Width="75" Click="startBtn_Click"/>
        <TextBox x:Name="leftText" HorizontalAlignment="Left" Height="122" Margin="31,164,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="195" />
        <TextBox x:Name="rigthText" HorizontalAlignment="Left" Height="134" Margin="268,152,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="198"/>

    </Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace DemoListPut
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        List<int> listAllNumber = new List<int>();
        private void beginBtn_Click(object sender, RoutedEventArgs e)
        {

            double allNum = 0;
            listAllNumber.Clear();
            if (double.TryParse(this.allNumber.Text, out allNum))
            {
                this.Dispatcher.BeginInvoke(new Action(() =>
                {

                    StringBuilder strBuild = new StringBuilder();
                    for (int i = 1; i <= allNum; i++)
                    {
                        listAllNumber.Add(i);
                        strBuild.Append(i.ToString() + ",");
                        if (i % 10 == 0)
                        {
                            strBuild.Append("\n");
                        }

                        this.leftText.Text = strBuild.ToString();
                    }

                }));
            }
        }

        private void startBtn_Click(object sender, RoutedEventArgs e)
        {

            int bgNum = 1;
            int stepNum = 1;
           
            if (int.TryParse(this.beginNumber.Text, out bgNum))
            {
                if (int.TryParse(this.stepNumber.Text, out stepNum))
                {
                    int flag = bgNum + stepNum - 2;
                    string strResult = string.Empty;
                    do
                    {

                        List<int> listTemp = new List<int>();
                        List<int> listLastInsertTop = new List<int>();
                        while (flag < listAllNumber.Count)
                        {
                            listTemp.Add(flag);
                            flag += stepNum;
                        }

                        foreach (int item in listTemp)
                        {
                            strResult += listAllNumber[item].ToString()+",";
                           
                        }
                        for (int j = flag; j < listAllNumber.Count; j++)
                        {
                            listLastInsertTop.Add(listAllNumber[j]);
                            // 
                        }
                        //show delete
                        //foreach (int item in listTemp)
                        //{
                        //   // strResult += listAllNumber[item].ToString();
                        //    listAllNumber.RemoveAt(item);
                        //}
                        int flagdel=listTemp.Count()-1;
                        for (int n = flagdel; n >= 0;n-- )
                        {
                            listAllNumber.RemoveAt(listTemp[n]);
                        }
                        listAllNumber.InsertRange(0, listLastInsertTop);
                        flag = bgNum + stepNum - 2;
                        this.rigthText.Text = strResult;
                    } while (listAllNumber.Count >(bgNum + stepNum - 2));
                   foreach (int item in listAllNumber)
                   {
                       strResult += item.ToString() + ",";
                   }
                    this.rigthText.Text=strResult;
                }
            }

        }
    }
}

 

posted @ 2016-10-25 23:11  lixin08  阅读(159)  评论(0编辑  收藏  举报