Example #1
0
    public bool HasUniqueKey(IEnumerable<string> keyNames)
    {
        Assert.IsTrue(!keyNames.IsNullOrEmpty(), "No key name");
        Assert.IsTrue(!keyNames.HasDuplication(), string.Format("Has duplicated keys in {0} \n {1}", filePath, keyNames.ToStringList(", ")));
        Assert.IsTrue(keyNames.All(x => columnInfo.ContainsKey(x)), string.Format("Has unknown key in {0} \n {1}", filePath, keyNames.ToStringList(", ")));

        var tempList = new List<RowData>(rows);
        return rows.All(delegate(RowData currRow)
        {
            bool result = tempList.Remove(currRow);
            Assert.IsTrue(result);
            IEnumerable<int> indexes = (from key in keyNames select columnInfo.IndexOf(key));
            bool notHaveSameKey = tempList.TrueForAll(x => !currRow.HasSameValueInAll(x, indexes));
            if (!notHaveSameKey)
            {
                List<RowData> errDatas = tempList.FindAll(x => currRow.HasSameValueInAll(x, indexes));
                Debug.LogError((from row in errDatas select row.Dump().RemoveWhiteSpace()).ToStringList("\n"));
            }
            return notHaveSameKey;
        });
    }
Example #2
0
    public IEnumerable<int> IndexesOf(IEnumerable<string> keyNames)
    {
        Assert.IsTrue(!keyNames.IsNullOrEmpty());
        Assert.IsTrue(!keyNames.HasDuplication());
        Assert.IsTrue(keyNames.All(x => columnInfo.ContainsKey(x)), "Has unknown keyName in \n" + keyNames.ToStringList(","));

        return keyNames.Select(x => columnInfo.IndexOf(x));
    }