List<string> list = new List<string>();
            if (y != 0) { list.Add(z.ToString() + "\t" +  x.ToString() + "\t" + y.ToString()); }
这是循环过程中将数据写入list的语句。遇到的问题是:z每次增加dz,就会有200对x、y写入,写入大概10组同样的200对xy后,z循环到某个值才会有不同的xy写入,但还是要重复10组同样的数。导致我写入的数据非常多而且乱。
   我现在想问一下大家有没有一种识别语句,让程序知道这组x、y值已经写入过,不必重复写入。每当200对x、y值发生变化时才再次写入
  不知道我说清楚了没。就是x、y值每200对为一个单元。

解决方案 »

  1.   

    1,没看明白你的代码,你写的是条件语句不是循环语句
    2,你可以尝试使用CompareTo来比较字符串,个人认为CompareTo语句在你这个情况中是效率最高的,只要CompareTo的结果!=0就执行写入操作
      

  2.   

    List <(Of <(T>)>)..::.Contains 方法   发送反馈
    确定某元素是否在 List <(Of <(T >)>) 中。 
    命名空间:   System.Collections.Generic
    程序集:   mscorlib(在 mscorlib.dll 中) 
    语法VBC#C++F#JScript以带有颜色区分的格式查看复制到剪贴板打印Public Function Contains ( _
        item As T _
    ) As BooleanPublic Function Contains ( _
    item As T _
    ) As Boolean
    public bool Contains(
        T item
    )public bool Contains(
    T item
    )
    public:
    virtual bool Contains(
        T item
    ) sealedpublic:
    virtual bool Contains(
    T item
    ) sealed
    abstract Contains : 
            item:'T -> bool 
    override Contains : 
            item:'T -> bool abstract Contains : 
            item:'T -> bool 
    override Contains : 
            item:'T -> bool 参数
    item
    类型: T
    要在 List <(Of <(T >)>) 中查找的对象。 对于引用类型,该值可以为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。 返回值
    类型: System ..::.Boolean 
    如果在 List <(Of <(T >)>) 中找到 item,则为 true,否则为 false。 
    using System;
    using System.Collections.Generic;public class Example
    {
        public static void Main()
        {
            List<string> dinosaurs = new List<string>();        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);        dinosaurs.Add("Tyrannosaurus");
            dinosaurs.Add("Amargasaurus");
            dinosaurs.Add("Mamenchisaurus");
            dinosaurs.Add("Deinonychus");
            dinosaurs.Add("Compsognathus");        Console.WriteLine();
            foreach(string dinosaur in dinosaurs)
            {
                Console.WriteLine(dinosaur);
            }        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
            Console.WriteLine("Count: {0}", dinosaurs.Count);        Console.WriteLine("\nContains(\"Deinonychus\"): {0}",
                dinosaurs.Contains("Deinonychus"));        Console.WriteLine("\nInsert(2, \"Compsognathus\")");
            dinosaurs.Insert(2, "Compsognathus");        Console.WriteLine();
            foreach(string dinosaur in dinosaurs)
            {
                Console.WriteLine(dinosaur);
            }        Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);        Console.WriteLine("\nRemove(\"Compsognathus\")");
            dinosaurs.Remove("Compsognathus");        Console.WriteLine();
            foreach(string dinosaur in dinosaurs)
            {
                Console.WriteLine(dinosaur);
            }        dinosaurs.TrimExcess();
            Console.WriteLine("\nTrimExcess()");
            Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
            Console.WriteLine("Count: {0}", dinosaurs.Count);        dinosaurs.Clear();
            Console.WriteLine("\nClear()");
            Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
            Console.WriteLine("Count: {0}", dinosaurs.Count);
        }
    }/* This code example produces the following output:Capacity: 0Tyrannosaurus
    Amargasaurus
    Mamenchisaurus
    Deinonychus
    CompsognathusCapacity: 8
    Count: 5Contains("Deinonychus"): TrueInsert(2, "Compsognathus")Tyrannosaurus
    Amargasaurus
    Compsognathus
    Mamenchisaurus
    Deinonychus
    Compsognathusdinosaurs[3]: MamenchisaurusRemove("Compsognathus")Tyrannosaurus
    Amargasaurus
    Mamenchisaurus
    Deinonychus
    CompsognathusTrimExcess()
    Capacity: 5
    Count: 5Clear()
    Capacity: 5
    Count: 0
     */
      

  3.   

    谢谢您啦,这些语句的循环控制语句是                for (z = 0; z <=z_caster ;z+= dz)
                    {
                        for (int x = 0; x < 200; x++)
                          { y = 。}
    z在不断增加,我每次x行走200次得到一组对应的x、y值,但z行走10步才会有不同的y值计算得出。所以会有很10组相同xy,我现在想筛选出来,不要重复写入list10组数据。。
    请指教谢谢啦
      

  4.   


    List<string> list = new List<string>();
                   for (z = 0; z <=z_caster ;z+= dz)
                {
                    for (int x = 0; x < 200; x++)
                    {
                        if (y != 0) 
                        { 
                            string str =z.ToString() + "\t" + x.ToString() + "\t" + y.ToString(); 
                            if(!list.Contains(str))
                            {
                                list.Add(str);
                            }
                        }                }
                 }
      

  5.   

    可以这样:List<string> list = new List<string>(); 
    for (z = 0; z <=z_caster ;z+= dz) 

    for (int x = 0; x < 200; x++) 

    if (z%10==0&&y != 0) 

    string str =z.ToString() + "\t" + x.ToString() + "\t" + y.ToString(); if(!list.Contains(str)) { list.Add(str); 


    }
    }